System and method for automating the configuration and sequencing of temporal elements within a digital video composition

ABSTRACT

Systems and methods for digital compositing platforms that utilize time-sculpting rules with respect to one or more layers of a composition are disclosed. Such time-sculpting rules may enable layers of a composition to be temporally linked or modified in a content agnostic manner. In this way, content can easily be manipulated, substituted, altered, etc. and the composition automatically modified based on the set of time-sculpting rules to ensure that the resulting composition is coherent and cogent, despite the alterations to the layers or the source of content thereof.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims a benefit of priorityunder 35 U.S.C. 120 of the filing date of U.S. patent application Ser.No. 15/689,752, filed Aug. 29, 2017, entitled “SYSTEM AND METHOD FORAUTOMATING THE CONFIGURATION AND SEQUENCING OF TEMPORAL ELEMENTS WITHINA DIGITAL VIDEO COMPOSITION,” which claims the benefit of priority under35 U.S.C. § 119 to U.S. Provisional Application No. 62/381,882, filedAug. 31, 2016, entitled “SYSTEM AND METHOD FOR AUTOMATING THECONFIGURATION AND SEQUENCING OF TEMPORAL ELEMENTS WITHIN A VIDEOCOMPOSITION,” the entire contents of which are hereby expresslyincorporated by reference for all purposes.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material towhich a claim for copyright is made. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but reserves all other copyright rightswhatsoever.

TECHNICAL FIELD

This disclosure relates to the field of digital video compositing,including editing or post-production. Specifically, this disclosurerelates to methods and systems for establishing and applying rules inthe context of authoring, editing or processing video compositions. Evenmore particularly, this disclosure relates to methods and systems forestablishing and applying temporal sculpting rules in the context ofcompositing, authoring, editing or processing video compositions wherethe rules may be useful in the context of, for example, contentdevelopment for digital signage, broadcast graphics, ecommerce video,personalized video messaging or localization of video content, amongothers.

BACKGROUND

Digital compositing is the process of digitally assembling multiplepieces of content to make a final piece of content (referred to as acomposition), typically for motion pictures (i.e., video). It is thedigital analogue of optical film compositing. In particular, layer-basedcompositing represents each piece of digital content (e.g., mediaobject) in a composite (or composition) as a separate layer within atimeline, each with its own time bounds, effects, keyframes, etc. Allthe layers are stacked, one above the next, in any desired order; andthe bottom layer is usually rendered as a base in the resultant finalcontent, with each higher layer being progressively rendered on top ofthe previously composited of layers, moving upward until all layers havebeen rendered into the final composite content.

Layer-based compositing sometimes becomes complex in the cases where alarge number of layers are utilized. A partial solution to this problemis the ability of some digital compositing programs to view thecomposite-order of elements (such as images, effects, or otherattributes) with a visual diagram to nest compositions, or “comps,”directly into other compositions, thereby adding complexity to therender-order by first compositing layers in the beginning composition,then combining that resultant image with the layered images from theproceeding composition, and so on. Thus, each digital video compositioncan have a series of layers—one stacked on atop another—resting in atimeline.

A digital compositing platform that allows users to digitally compositecontent, and include nested compositions, is Adobe's After Effectsproduct. Other examples of digital compositing programs or platforms areBlender, Cinelerra, Kdenlive, Natron, OpenShot, Shotcut, Apple Motion,Autodesk 3ds Max, Autodesk Inferno, Flame and Flint (IFF), AutodeskMaya, Autodesk Smoke, CompTime (ILM), FXhome HitFilm, Saber (ILM),Houdini, Blackmagic Fusion, Mistika, Nuke, Piranha, SilhouetteFX,Assimilate, Scratch, Sony Vegas Pro, or the like.

In the main, these types of digital compositing platforms (also known aspost-production or editing applications or platforms) present a userwith an interface by which a user may select and define layers, and thecorresponding source of content for each layer. The interface may alsopresent a graphical depiction of the time line of the composition andallow a user of the digital compositing program to order the layers.Additionally, when a digital compositor (e.g., user) works with apost-production application, the application typically offers a suite ofeffects that can be applied to the various individual layers that are inthe composition's timeline. These effects may be applied or definedusing, for example, a “plug-in” to the digital compositing platform.Such plug-ins may be a component that provides a particular feature(e.g., one or more effects) in association with a computing program(e.g., a digital compositing platform). These plug-ins may utilize anextensible architecture offered by the “host” computing program (e.g., aplug-in architecture such as a set of Application Programming Interfaces(API) or the like).

There are a number of complexities when it comes to layer-based digitalcompositing, however. These complexities result at least in part fromthe fact that each layer of a composition may include content with noinherent duration (e.g., an image or text) or, conversely, may includecontent that does have inherent duration (e.g., a video file). Thus, forlayers including content with inherent duration there may be a start andend to the content comprising that layer, but there may also be anin-point and out-point defined with respect to the content for thatlayer, where the in-pint and out-point may not be the same as the startpoint or end point of the content. Accordingly, the entire duration ofthe content of the layer may not be shown in the resulting (rendered)composition.

Additionally, problems may arise because digital compositing platformsmay allow different pieces of content to be easily swapped. Thus, once acomposition is defined (e.g., the set of layers, the content for each ofthe set of layers, the in-point and out-points for each layer, thetemporal arrangement of each layer and the like defined), another sourceof content may be “swapped” for the current source for the layer, or theoriginal content may be modified. As may be imagined, in the case ofcontent with a particular duration, the original content for a layer maynot be of the same duration as the swapped or modified content thatreplaces it. This situation can cause a number of adverse effects,including dead space in a composition, improper or unwanted display ofcertain layers together in the composite, the curtailing of the displayof the composition, or other undesirable effects. These adverse effectsmay be exacerbated when layers of a composition are nested, such thatone or more layers of a composition is itself a composition comprised oflayers having content with an inherent duration.

What is desired therefore, are digital compositing platforms enabled toallow automatic temporal adjustment of a composition or layers thereof.

SUMMARY

To those ends, among many others, systems and methods for implementingrules in a digital compositing platform are disclosed herein.Specifically, certain embodiments provide for the implementation oftime-sculpting rules that enable the layers of a video composition to betemporally linked or modified in a content agnostic manner. In this way,content can easily be manipulated, substituted, altered, etc. and thecomposition automatically modified by the digital compositing platformbased on the set of time-sculpting rules to ensure that the resultingcomposition is coherent and cogent, despite the alterations to thelayers or the source of content thereof. These types of rules may thusbe advantageously utilized in the authoring, editing or processing videocompositions, including in the context of content development fordigital signage, broadcast graphics, ecommerce video, personalized videomessaging, localization of video content, among others.

In particular, embodiments disclosed herein provide systems, methods,and computer program products for a digital video compositing platformfor automatic temporal adjustment of a digital composition may include adata store with a project defining a composition arranged according to afirst temporal arrangement including a timeline and having a set oflayers. The set of layers of the composition are arranged according tothe first temporal arrangement and each layer is associated withcorresponding digital content. The digital compositing platform may alsoinclude a temporal sculpting module for allowing a user to define a setof temporal sculpting rules including a first temporal sculpting ruleassociated with a first layer of the composition. The first temporalrule may be one of a target rule establishing a temporal link betweenthe first layer and a target layer or a cropping rule establishing atemporal link between the composition and the first layer.

The set of temporal rules can be stored in the data store in associationwith the composition, including storing the first temporal sculptingrule in association with the first layer. The temporal sculpting moduleincludes a rules engine for determining that the digital contentcorresponding to the first layer or the digital content corresponding tothe target layer has changed and automatically adjusting the compositionfrom the first temporal arrangement to a second temporal arrangement toconform with the first temporal sculpting rule without user involvement.Adjusting the temporal arrangement can comprise modifying the project totemporally arrange the first layer or target layer within thecomposition based on the temporal link between the first layer andtarget layer or cropping the timeline of the composition based on thetemporal link between the composition and the first layer.

In one embodiment, the first temporal sculpting rule is a shifting ruleand temporally arranging the first layer or target layer within thecomposition comprises shifting the first layer relative to the timelinebased on a target point in the target layer specified in the firsttemporal sculpting rule.

In another embodiment, the first temporal sculpting rule is a trimmingrule and temporally arranging the first layer or target layer within thecomposition comprises modifying an in-point or out-point of the firstlayer relative to the timeline based on a target point in the targetlayer specified in the first temporal sculpting rule.

In other embodiments, the first temporal sculpting rule is a stretchingrule and temporally arranging the first layer or target layer within thecomposition comprises modifying a playback speed of the first layerbased on a target point in the target layer or the composition specifiedin the first temporal sculpting rule.

In certain embodiments, the first temporal sculpting rule is a timecropping rule and temporally cropping the timeline of the compositionbased on the temporal link between the composition and the first layercomprises modifying a start time or end time of the composition based ona target point in the first layer specified in the temporal sculptingrule.

In a particular embodiment, automatically adjusting the first temporalarrangement to a second temporal arrangement of the composition may beaccomplished by determining an ordered set of dynamic layers of thecomposition, including the first layer and the target layer, resettingthe playback speed of each of the set of dynamic layers and arrangingthe set of dynamic layers according to the set of temporal sculptingrules. The arrangement of the set of dynamic layers may includedetermining a maximum nested depth of the composition, evaluating eachof the ordered set of dynamic layers sequentially in a forward orderaccording to the set of temporal sculpting rules, evaluating each of theordered set of dynamic layers in reverse order according to the set oftemporal sculpting rules, and repeating both these evaluation steps anumber of times equal to the maximum nested depth of the composition.

Thus, in one embodiment, the set of rules that may be utilized by a userare target (or anchor) point based rules that link one layer to anotherlayer through the use of target points in the linked layer. Inparticular, these target based rules may allow one layer to be timeshifted, stretched or trimmed based on one or more target points definedwith respect to another layer. The set of rules may also include timecropping rules that allow a user to define time cropping points withrespect to a layer, such that when a layer changes, the in-point andout-point of the entire composition are altered based on the in-point orout-point of the layer.

Accordingly, in certain embodiments, if a video composition contains alayer that is itself a separate composition which contains a layermarked for variable footage duration, then the timeline of the videocomposition can be reconfigured according to the duration of the footagelayers. Users may consequently have the capability to nest dynamiclayers of variable time duration within each other. The cumulativeeffect of processing content utilizing rules applicable to nested layersof variable time duration is that the overall length of the outputchanges based on the variable length of sub-layers.

Accordingly, embodiments may provide advantages by allowing users ofdigital compositing platforms to be able to define time-sculpting ruleswith respect to one or more layers of a composition, where thosetime-sculpting rules enable the layers to be temporally linked ormodified in a content agnostic manner. In this way, content can easilybe manipulated, substituted, altered, etc. and the compositionautomatically modified based on the set of time-sculpting rules toensure that the resulting composition is coherent and cogent, despitethe alterations to the layers or the source of content thereof.

Moreover, embodiments may provide advantages related to the speed andprocessing efficiency of computer systems, including digital processingplatforms that implement such time-sculpting rules. Such efficienciesmay be especially realized in the context of applying suchtime-sculpting rules to video compositions that are nested (e.g., wherea layer of the composition is itself a composition) and particularly inthe context of video compositions that include multiple levels ofnesting. These efficiencies may result at least from an initialdetermination of the level or depth of nesting of such video composition(e.g., before time-sculpting rules are applied) and the use of thisdepth of nesting as a parameter in determining the processing of thelayers of the video composition. Specifically, in certain embodiments,these efficiencies may result from limiting the number of times thelayers of a composition are processes based on the depth of the nestingof a video composition.

These, and other, aspects of the disclosure will be better appreciatedand understood when considered in conjunction with the followingdescription and the accompanying drawings. It should be understood,however, that the following description, while indicating variousembodiments of the disclosure and numerous specific details thereof, isgiven by way of illustration and not of limitation. Many substitutions,modifications, additions and/or rearrangements may be made within thescope of the disclosure without departing from the spirit thereof, andthe disclosure includes all such substitutions, modifications, additionsand/or rearrangements.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings accompanying and forming part of this specification areincluded to depict certain aspects of the invention. A clearerimpression of the invention, and of the components and operation ofsystems provided with the invention, will become more readily apparentby referring to the exemplary, and therefore nonlimiting, embodimentsillustrated in the drawings, wherein identical reference numeralsdesignate the same components. Note that the features illustrated in thedrawings are not necessarily drawn to scale.

FIG. 1 is a block diagram depicting one embodiment of an architectureincluding a digital compositing platform.

FIG. 2 is a block diagram depicting a key for a layer.

FIG. 3 is a block diagram depicting a key for understanding a depictionof a video composition.

FIGS. 4A-11B are block diagrams depicting embodiments of shifting rulesand interfaces for defining such shifting rules.

FIGS. 12A-19B are block diagrams depicting embodiments of trimming rulesand interfaces for defining such trimming rules.

FIGS. 20A-24B are block diagrams depicting embodiments of stretchingrules and interfaces for defining such stretching rules.

FIGS. 25A-26B are block diagrams depicting embodiments of cropping rulesand interfaces for defining such cropping rules.

FIGS. 27A and 27B are block diagrams depicting an embodiment of croppingrules and interfaces for defining such cropping rules.

FIGS. 28A-28C are block diagrams depicting an embodiment of croppingrules and interfaces for defining such cropping rules.

FIGS. 29A-29C are block diagrams depicting an example of the applicationof time sculpting rules and interfaces for defining such time sculptingrules.

FIGS. 30A-30C are block diagrams depicting an example of the applicationof time sculpting rules and interfaces for defining such time sculptingrules.

FIGS. 31A-31F are block diagrams depicting an example of the applicationof time sculpting rules and interfaces for defining such time sculptingrules.

FIGS. 32A to 32O are block diagrams depicting embodiments of interfacesfor a digital compositing platform that includes a temporal sculptingmodule.

FIG. 33 is a flow diagram for one embodiment of method for configuringand sequencing layers within a digital video composition.

FIG. 34 is a flow diagram for one embodiment of a method for harvestinglayers.

FIG. 35 is a flow diagram for one embodiment of a method forinitializing and resetting layers.

FIG. 36 is a flow diagram for one embodiment of a method for arrangingthe layers of a composition.

FIG. 37 is a flow diagram for one embodiment of a method for trimming alayer.

FIG. 38 is a flow diagram for one embodiment of a method for shifting alayer.

FIG. 39 is a flow diagram for one embodiment of a method for cropping acomposition.

FIG. 40 is a flow diagram for one embodiment of a method for stretchinga layer.

DETAILED DESCRIPTION

The disclosure and various features and advantageous details thereof areexplained more fully with reference to the exemplary, and thereforenon-limiting, embodiments illustrated in the accompanying drawings anddetailed in the following description. It should be understood, however,that the detailed description and the specific examples, whileindicating the preferred embodiments, are given by way of illustrationonly and not by way of limitation. Descriptions of known programmingtechniques, computer software, hardware, operating platforms andprotocols may be omitted so as not to unnecessarily obscure thedisclosure in detail. Various substitutions, modifications, additionsand/or rearrangements within the spirit and/or scope of the underlyinginventive concept will become apparent to those skilled in the art fromthis disclosure.

A brief discussion of a context in which embodiments as disclosed hereinmay be effectively utilized may be useful before delving intoembodiments in more detail. As will be recalled from the abovediscussion, digital compositing is the process of digitally assemblingmultiple pieces of content to make a composition, typically for motionpictures (i.e., video). In particular, layer-based compositingrepresents each piece of content (e.g., media object) in a composite (orcomposition) as a separate layer within a timeline, each with its owntime bounds, effects, keyframes, etc. All the layers are stacked, oneabove the next, in any desired order; and the bottom layer is usuallyrendered as a base in the resultant final content, with each higherlayer being progressively rendered on top of the previously compositedof layers, moving upward until all layers have been rendered into thefinal composite content. In addition, compositions may be nested, wherethe layer of a composition is itself a composition including layers,where these layers may, in turn, include a composition, etc.

There are a number of complexities when it comes to layer-based digitalcompositing, however. These complexities result at least in part fromthe fact that each layer may include content with no inherent duration(e.g., an image or text) or that does have inherent duration (e.g., avideo file). Thus, for content layers with inherent duration there maybe a start and end to the content comprising a layer, but there may alsobe a “in-point” and “out-point” defined with respect to the content forthat layer, where the in-pint and out-point may not be the same as thestart point or end of the content. Accordingly, the entire duration ofthe content may not be shown in the resulting composition.

Additionally, problems may arise because digital compositing platformsmay allow different pieces of content to be easily swapped. Thus, once acomposition is defined (e.g., the set of layers, the content for each ofthe set of layers, the in-point and out-points for each layer, thetemporal arrangement of each layer and the like defined), another pieceof content may be “swapped” for the current source for the layer or theoriginal content may be modified. As may be imagined, in the case ofcontent with a particular duration, the original content for a layer maynot be of the same duration as the swapped or modified content thatreplaces it. This situation can cause a number of adverse effects,including dead space in a composition, improper or unwanted display ofcertain layers together in the compositing, the curtailing of thedisplay of the composition, or other undesirable effects. These adverseeffects may be exacerbated when layers of a composition are nested, suchthat one or more layers of a composition is itself a compositioncomprised of layers having content with an inherent duration.

What is desired therefore, is to allow users of digital compositingplatforms to be able to define time-sculpting rules with respect to oneor more layers of a composition, where those time-sculpting rules enablethe layers to be temporally linked or modified in a content agnosticmanner. In this way, content can easily be manipulated, substituted,altered, etc. and the composition automatically modified based on theset of time-sculpting rules to ensure that the resulting composition iscoherent and cogent, despite the alterations to the layers or the sourceof content thereof.

Embodiments of the systems and method for implementing time-sculptingrules in a layer based digital compositing application as disclosedherein may do just that, among other advantages and capabilities.Embodiments of these time-sculpting rules may be modifiers a user mayassign to one or more layers that exist within the timeline of a videocomposition. The time-sculpting rules provided by embodiments may allowusers to define video composition templates with layers of variable timeduration. These rules can be evaluated when a digital compositingplatform creates a composition based on the layers and rules defined forthe composition. In this manner, the time sculpting of digitalcompositions can be automated by applying those rules to the layers(including nested compositions) of a composition. This automated timesculpting may be especially useful in cases where the content comprisinga layer (e.g., the source of content for the layer) has been altered.

For example, in one embodiment, the set of rules that may be utilized bya user are target (or anchor) point based rules that link one layer toanother layer through the use of target points in the linked layer. Inparticular, these target based rules may allow one layer to be timeshifted, stretched or trimmed based on one or more target points definedwith respect to another layer.

In other embodiments, the set of rules are time cropping rules thatallow a user to define time cropping points with respect to a layer of acomposition, such that when a layer changes, the in-point and out-pointof the entire composition are altered based on the in-point or out-pointof the layer.

Accordingly, in certain embodiments, if a video composition contains alayer that is itself a separate composition which includes a layer towhich a rule has been applied, the timeline of the video composition canbe reconfigured according to the duration of the layers. Users mayconsequently have the capability to nest dynamic layers of variable timeduration within each other. The cumulative effect of processing contentutilizing rules applicable to nested layers of variable time duration isthat the overall length of the composition may change based on thevariable length of sub-layers.

In certain embodiments, these rules may be incorporated into a hostdigital compositing platform. For example, in certain embodiments, atemporal sculpting module may be, included in, or installed as anaddition or plug-in to a digital compositing program such as Adobe'sAfter Effects. In particular, when a digital compositor works with theirpost-production application, they typically have a suite of effectplug-ins they can apply to various, individual, layers that exist in acomposition's timeline. A typical compositor's workstation will have asuite of plug-ins installed and each have a unique set of controls.Users may install a temporal sculpting module as a plug-in to anexisting or pre-installed video compositing platform. Users can thenapply the temporal sculpting plug-in effect to any layer in a videocomposition being composited in the host compositing platform. Theeffect's “controls” are where the user's configure rules. These controlsmay be thought of as styling declarations not unlike those found in aCascading Style Sheet (CSS) for a website.

By installing a temporal sculpting module as plug-in to a digitalcompositing program such as After Effects, or providing a temporalsculpting module in such a digital compositing platform, embodiments ofthe systems and methods disclosed may allow a user of such a program toutilize an “effect” to mark variable footage layers in a manner thatfollows and fits into the normal workflow to which digital compositorsare accustomed. That is, a user can select a layer, apply an effect tothe layer, and then configure the effect's controls. Accordingly, theuser experience of setting up the system of time sculpting rulesaccording to embodiments may be intuitive, as it operates within aframework with which users are accustomed to interacting.

In one embodiment, when compositing, the user may define a templatebased on the time-sculpting rules using the plug-in for the digitalcompositing platform. The template may follow the format of the hostdigital compositing platform. Thus, for example, in one embodiment thetemplate file format may follow the After Effects Project (.aep) fileformat specification. In other words, the definition of time-sculptingrules for one or layers of a composition of a project file may result inthe definition of a template. A template may thus be an instance of, orincluded within, a project file. It will be understood that the termproject as used herein is used in a general sense to refer to any fileor storage format for a digital video composition or a template and inshould not in any way be taken as a limitation on the embodiments asdisclosed herein.

Once the templates are created, they are processed to alter thecomposition or layers thereof to ensure that the rules are met. Thisprocessing of the template may also be triggered by another event, suchas the modification, alteration, substitution, removal, etc. of one ormore layers of the composition. For example, in one embodiment, a usersets up versioning data and prepares a template for versioning data. Theuser can then link the versioning data to a particular project (e.g.,.aep) file. User then selects a “target” composition to re-version andrender. A rendering operation (e.g., a batch rendering operation) canthen be initiated. During the rendering process, a processing loop canoccur where the versioning data is ingested and the host digitalcompositing application's project and compositions are invalidated withnew data (e.g., text, footages, and solid colors). The host digitalcompositing application (e.g., After Effects) can then render the targetcomposition. This loop is repeated and may be recursive or nested suchthat compositions that comprise layers of a deeper, nested, level may beprocessed or rendered in accordance with the rules before higher-levellayers. In some embodiments, the processing may be repeated according toa depth of nesting of compositions within the project.

It will now be helpful to discuss embodiments of such a digitalcompositing platform with a temporal sculpting module. Turning then FIG.1, one embodiment of an architecture including a digital compositingplatform 110 including a temporal sculpting module 120 is depicted.Temporal sculpting module 120 may be implemented as a plug-in to thedigital compositing platform 110 or may be built into the digitalcompositing platform 110. As discussed, one example of a digitalcompositing platform 110 is Adobe After Effects, and in one embodiment,temporal sculpting module 120 may be implemented as a plug-in to AdobeAfter Effects or another digital composing platform that provides aplug-in architecture. It will be understood, however, that embodimentsas disclosed herein may be equally effectively implemented or utilizedin conjunction with almost any digital compositing platform desiredincluding those listed above or others.

Digital compositing platform 110 may present a user with an interface112 by which a user may select and define layers, and the correspondingsource of content for each layer. The interface may also present agraphical depiction of the time line of the composition and allow a userof the digital compositing program 110 to temporally order the layers.Additionally, when a digital compositor (e.g., user) works with theirpost-production application, they typically have a suite of effectplug-ins they can apply to the various individual layers that are in thecomposition's timeline.

In particular, when a user is utilizing the digital compositing platform110 he may be presented with an interface which allows him to see atimeline for a composition he is editing along with depictions of thevarious layers within that composition. The user can use the interfaceto associate content 128 (stored locally in data store 130 or remotelyon sources accessible across computer network 160) with each of thelayers. This association may be defined by a supplying a source for thecontent 128 to associate with the layer. The visual interface may alsoallow the user to nest compositions, directly into other compositions.Thus, each video composition can have a series of layers—one stacked oneatop another—according to a timeline, where those layers may themselvesbe compositions.

The digital compositing platform 110 may define and store one or morefiles 126 (generally referred to herein as projects) associated with thecomposition being defined by the user. A project file may store one ormore compositions (e.g., collection of layers) and references to thecontent 128 (e.g., the source of content 128) for each of the layers ofthe composition. Moreover, the project 126 may include data regardingthe compositions or layers comprising the compositions, including, forexample, a temporal arrangement of the layers such as the duration,playback speed, in-point, out-points or other data regarding the layersand compositions.

Users can apply temporal sculpting rules (or effects) (e.g., which maybe named Templater Settings or the like) to any layer in a videocomposition being composited using digital compositing platform 110utilizing temporal sculpting module 120. Specifically, an interface 124of the temporal sculpting module may be presented in association withthe interface of the digital compositing platform 110. The interface 124of the temporal sculpting module 120 may include a set of “controls”where the user may configure such rules. Embodiments may, for example,be usefully utilized in association with the Templater product ofDataclay, LLC of Austin, Tex.

In particular, in one embodiment, the temporal sculpting module 120 mayhave an interface component 124 which allows a menu to be presented inassociation with the interface of the digital compositing platform 110to present the user with controls for the temporal sculpting module 120.Using this interface 124 the user may specify rules associated with thecomposition of the project 126 and thus define a template 125 for thecomposition of the project file 126 including one or more rules for thecomposition. The project 126 may thus include the defined template 125,or set of rules. In one embodiment, the set of rules defined by the usermay be stored in the project 126 being edited by the user through thedigital compositing platform 110. In this manner, the template 125 maybe included in the project 126, or stored in association with theproject 126, as the defined set of rules. These rules may establishtemporal links between one or more layers or between a composition and alayer.

The rules engine 122 of the temporal sculpting module 120 can thenevaluate the composition (e.g., the project file 126 for thecomposition) based on the template 125 associated with the project 126to conform the project 126 to those rules such that when the digitalcompositing platform 110 renders the composition of the project 126 itis rendered in accordance with those rules to temporally sculpt theresulting rendered composition. Specifically, in one embodiment, therules engine 122 may evaluate the rules defined in the template 125 andadjust the temporal arrangement of the composition by adjusting the data(e.g., the in-point, out-point, start time, end time, playback speed,etc.) associated with one or more dynamic layers in, or the compositionof, the project 126. Such an adjustment may, for example, be doneautomatically without further user involvement based on one or moreoccurrences such as replacement or alteration of the source of contentof a layer, or another occurrence. In this manner, layers within acomposition can be made to automatically interact with one another in afinal composition with respect to start or end time, playback speed,in-point, out-points or other data regarding the layers andcompositions.

In one embodiment, the rules engine 122 may evaluate the layers of acomposition in a number of passes based on a depth of nesting of layersof the composition when applying the rules of the template 125 to thelayers of the composition(s) of the project 126. Specifically, in oneembodiment, to adjust the temporal arrangement of the composition orlayers to conform the layers of the project 126 to the template 125, therules engine 122 may process the project file to determine the layers ofthe composition(s) of the project that are dynamic. These dynamic layers(which may themselves be a composition) are those layers in thecomposition of the project 126 which have one or more associatedtime-sculpting rules as defined in template 125 using temporal sculptingmodule 120. Each of these dynamic layers may be placed in an array orother data structure (generically referred to herein as an array). Inone embodiments, placing the layer in the array may include placing areference to the layer in the project 126 in the array. The array thusincludes references to each dynamic layer and the associated data orproperties of that layer such as the start time, end time, in-point,out-point, playback speed, etc.

Each of the dynamic layers referenced in the array may be initializedand reset by the rules engine 122 by defining the layer's playback tonormal speed (e.g., 100%) and setting the in-points or out-points of thelayer if needed. The maximum nested depth of the composition of theproject 126 can then be determined by the rules engine 122. For eachlevel of depth, the layers of the project 126 can then be arrangedaccording to the time-sculpting rules defined for those layers accordingto the template 125. This arrangement may include trimming one or moreof the layers (e.g., setting a layer's in-point or out-point in theproject based on a target layer's in-point or out-point); shifting oneor more of the layers (e.g., setting a layer's start time or end time inthe project so the layer's in-point or out-point reaches a targetlayer's in-point or out-point); cropping one or more layers (which maybe compositions) (e.g., by adjusting the duration of the composition inthe project where the beginning of a composition starts at a layer'sin-point or the end of a composition ends at a layer's out-point, orboth); or stretching one or more layers (e.g., by changing the durationof a layer in the project by adjusting the layer's playback speed untilthe layer's out-point reached the in-point or out-point of a targetlayer, or the end of the layer's containing composition).

It is useful at this point to illustrate types of rules that may beimplemented by embodiments of the temporal sculpting module and digitalcompositing platform described herein. Before discussing these rules indetail, attention is directed to FIGS. 2 and 3 which are block diagramsdepicting keys that will be useful in understanding the graphicdepiction of the rules that follow. FIG. 2 depicts a key for a layer.Thus, a layer may be represented by a rectangle or block 210, 220. Timeis depicted as running from left to right when viewing the FIGURES. Thecontent for the layer may have a start denoted by a triangle on the leftof the rectangle representing the layer and an end denoted by thetriangle on the right. The duration for the layer 210 (e.g., the amountof time the source content of the layer appears in the containingcomposition) is thus equal to the duration of the source content Thus,the example layer 210 is a layer whose in-point and out-point are equalto the start and end of the source content for the layer. In examplelayer 220, however, note that the in-point (denoted by a right-facingbracket) and an out-point (denoted by a left-facing bracket) of a layerwith respect to a composition may not be the same as the start and endof the layer. In this case, then, the entire content for the layer isnot presented in the containing composition. Instead, the content of thelayer is displayed in the composition beginning at the in-point(right-facing bracket) and ending at the out-point (left-facingbracket). The greyed out portion of the rectangle representing the layerindicates that this portion of the content of the layer (e.g., thegreyed out portion) will not be displayed in the composition. Theduration of this layer (vis-à-vis the containing composition) will thusbe the portion of the content of the layer between the in-point(right-facing bracket) and the out-point (left-facing bracket).

FIG. 3 depicts a block diagram of key for understanding the depiction ofvideo compositions and their parts in the following FIGURES. Acomposition 300 is represented by a rectangle where the left border ofthe rectangle represents the start of the composition 300 and the rightside of the triangle represents the end of the composition 300. Atimeline 310 of the composition is represented across the top of thecomposition 300. Underneath the timeline 310 of the composition 300 thelayer stack 330 include each of the layers 340 contained by thecomposition 300. The layers are depicted as discussed in FIG. 2 andarrayed with respect to the timeline 310 based on the data (e.g., starttime, end time, in-point, out-point, etc.) associated with that layer340 for the composition.

With those depictions and representations in mind, attention is nowdirected to the types of rules that may be implemented by embodiments ofthe temporal sculpting module and digital compositing platform describedherein. As discussed, a layer which has a time-sculpting rule assignedto it, or associated with it, may be referred to as a “dynamic layer”.In other words, the layer (or an associated layer) may change based onsome criteria. A target layer can also be dynamic or have other targetlayers. In one embodiment, the set of rules that may be utilized by auser are target (or anchor) point based rules that link one layer toanother layer through the use of target points in the linked or targetedlayer. The anchors or targets within a target layer could be startpoints or end points, in-points or out-points, key-frames within alayer, etc. Generally, a target point may be some reference point withina target layer that could be identified (e.g., in the case where onelayer is replaced with another layer). These target based rules mayallow one layer to be time shifted, stretched, trimmed or otherwisetemporally arranged based on one or more target points defined withrespect to another layer. Additionally, an “overlap” may be specified(usually with respect to a target point). This overlap may include anumber of frames or time period (e.g., later or earlier) than a targetpoint.

Specifically, in one embodiment, time shifting rules may allow a layerto be temporally arranged by being moved along a composition's timelinebased on a temporal link established with a target point within a targetlayer such that when a layer is modified (e.g., altered, substituted,swapped, etc.) a layer may be time shifted based on the modified layer.Embodiments of these types of shifting rules may be better understoodwith reference to FIGS. 4A-11B.

First, referring to FIG. 4A a block diagram depicting one embodiment ofan interface for allowing a user to define an “in-point shifts toin-point” rule is shown. Such a rule may specify that when a layer (herelayer b) changes duration (e.g., because the source changes or thecontent from the source changed), that layer's in-point will shift tothe same position in time as a target layer's (here layer a) in-point.Thus, such an interface may be presented by a temporal sculpting modulewhen a user is defining effects for layer b in a digital compositingplatform. In particular, interface 410 may allow a user to specifycontrol parameters for a layer (the “controlled layer”, here layer b).Interface 410 provides a time menu 412 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include shift menu414 where the shift target (e.g. here layer a) may be specified, alongwith the rule that the in-point for the controlled layer (layer b)should be shifted to the in-point of the target layer (layer a).

FIG. 4B is a block diagram depicting the one embodiment of the effect ofapplying an in-point shifts to in-point rule as defined in FIG. 4A tothe controlled layer (layer b). Composition 460 a depicts an initialstate of the composition 460. Initially then, layer a 470 is compositedatop layer b 480 and layer b 480 has a first source of content.Composition 460 b depicts a state of composition 460 after the source ofcontent of layer b 480 changes, before the application of the in-pointshifts to in-point rule defined for layer b 480. Composition 460 cdepicts the state of the composition 460 after the application of thein-point shifts to in-point rule defined in FIG. 4A. Thus, for example,a rules engine of a temporal sculpting module may evaluate the rulesassociated with composition 460 as defined in the project for thecomposition when the source of content for layer b 480 changes, andapply the in-point shifts to in-point rule specified for layer b 480 inthe project for composition 460 (e.g., by changing the data associatedwith layer b 480 in the project). Notice here that the application ofthe in-point shifts to in-point rule shifts the in-point of layer b 480and the out-point of layer b by the same amount of time to cause thein-point of layer b 480 to reach (e.g., be the same point in time in thecomposition as) layer a's in-point.

Similarly, in FIG. 5A a block diagram depicting one embodiment of aninterface for allowing a user to define an “In-point shifts to In-pointwith overlap” rule is shown. Such a rule may specify that when a layer(here layer b) changes duration, that layer's in-point will shift to thesame position in time as a target layer's (here layer a) in-point plussome amount of frames. Such an interface may be presented by a temporalsculpting module when a user is defining effects for layer b in adigital compositing platform. Interface 510 may allow a user to specifycontrol parameters for the controlled layer (here layer b) by providinga time menu 512 for the controlled layer including controls allowing auser to define one or more time-sculpting rules with respect to thatlayer. This time menu 512 may include shift menu 514 where the shifttarget (e.g. here layer a) may be specified, along with the rule thatthe in-point for the controlled layer (layer b) should be shifted to thein-point of the target layer (layer a) with an overlap of a certainnumber of frames (here 15).

FIG. 5B is a block diagram depicting one embodiment of the effect ofapplying an in-point shifts to in-point rule plus overlap as defined inFIG. 5A to the controlled layer (layer b). Composition 560 a depicts aninitial state of the composition 560. Initially then, layer a 570 iscomposited atop layer b 580 and layer b 580 has a first source ofcontent. Composition 560 b depicts a state of composition 560 after thesource of content of layer b 580 changes, before the application of thein-point shifts to in-point plus overlap rule defined for layer b 480.Composition 560 c depicts the state of the composition 560 after theapplication of the in-point shifts to in-point rule plus overlap definedin FIG. 5A. Thus, for example, a rules engine of a temporal sculptingmodule may evaluate the rules associated with composition 560 as definedin the project for the composition when the source of content for layerb 580 changes, and apply the in-point shifts to in-point plus overlaprule specified for layer b 580 in the project for composition 560 (e.g.,by changing the data associated with layer b 580 in the project). Noticehere that the application of the in-point shifts to in-point plusoverlap rule shifts the in-point of layer b 580 and the out-point oflayer b by the same amount of time to cause the in-point of layer b 580to be a point in time in the composition defined by layer a's in-pointplus the number of frames specified as the overlap (e.g., in thisexample 15 frames).

Moving to FIG. 6A a block diagram depicting one embodiment of aninterface for allowing a user to define an “in-point shifts toout-point” rule is shown. Such a rule may specify that when a targetlayer (here layer a) changes duration, the control layer's in-point willshift to the same position in time as the target layer's (here layer a)out-point. Thus, such an interface may be presented by a temporalsculpting module when a user is defining effects for layer b in adigital compositing platform. In particular, interface 610 may allow auser to specify control parameters for the controlled layer (here layerb). Interface 610 provides a time menu 612 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include shift menu614 where the shift target (e.g. here layer a) may be specified, alongwith the rule that the in-point for the controlled layer (layer b)should be shifted to the out-point of the target layer (layer a).

FIG. 6B is a block diagram depicting one embodiment of the effect ofapplying an in-point shifts to out-point rule as defined in FIG. 6A tothe controlled layer (layer b). Composition 660 a depicts an initialstate of the composition 660. Initially then, layer a 670 is compositedatop layer b 680 and layer a 670 has a first source of content.Composition 660 b depicts a state of composition 660 after the source ofcontent of layer a 670 changes, before the application of the in-pointshifts to out-point rule defined for layer b 680. Composition 660 cdepicts the state of the composition 660 after the application of thein-point shifts to out-point rule defined in FIG. 6A. For example, arules engine of a temporal sculpting module may evaluate the rulesassociated with composition 660 as defined in the project for thecomposition when the source of content for layer a 670 changes, andapply the in-point shifts to out-point rule specified for layer b 680 inthe project for composition 660 (e.g., by changing the data associatedwith layer b 680 in the project). Notice here that the application ofthe in-point shifts to out-point rule shifts the in-point of layer b 680and the out-point of layer b by the same amount of time to cause thein-point of layer b 680 to reach (e.g., be the same point in time in thecomposition as) layer a's out-point.

Similarly, in FIG. 7A a block diagram depicting one embodiment of aninterface for allowing a user to define an “in-point shifts to out-pointwith overlap” rule is shown. Such a rule may specify that when a targetlayer (here layer a) changes duration, a controlled layer's in-pointwill shift to the same position in time as the target layer's (herelayer a) out-point minus (e.g., earlier in time by) some amount offrames. Such an interface may be presented by a temporal sculptingmodule when a user is defining effects for layer b in a digitalcompositing platform. Interface 710 may allow a user to specify controlparameters for the controlled layer (here layer b) by providing a timemenu 712 for the controlled layer including controls allowing a user todefine one or more time-sculpting rules with respect to that layer. Thistime menu 712 may include shift menu 714 where the shift target (e.g.here layer a) may be specified, along with the rule that the in-pointfor the controlled layer (layer b) should be shifted to the out-point ofthe target layer (layer a) minus an overlap of a certain number offrames (here 15).

It will be noted that while the overlap of a certain number of frameshas been defined as being plus or minus that number of frames withrespect to certain rules this should not be taken as a limitation onother embodiments of similar rules and that whether an overlap isdefined to be plus or minus the defined number of frames may depend onthe rule or another condition such as a user selection. Additionally, itshould be noted that while overlap has been specified according tocertain embodiments based on a number of frames, other methods ofspecifying overlap (e.g., amount of time) may also be utilized and arefully contemplated herein.

FIG. 7B is a block diagram depicting one embodiment of the effect ofapplying an in-point shifts to out-point rule with overlap as defined inFIG. 7A to the controlled layer (layer b). Composition 760 a depicts aninitial state of the composition 760. Initially then, layer a 770 iscomposited atop layer b 780 and layer b 780 has a first source ofcontent. Composition 760 b depicts a state of composition 760 after thesource of content of layer b 780 changes, before the application of thein-point shifts to out-point with overlap rule defined for layer b 780.Composition 760 c depicts the state of the composition 760 after theapplication of the in-point shifts to out-point rule with overlapdefined in FIG. 7A. For example, a rules engine of a temporal sculptingmodule may evaluate the rules associated with composition 760 as definedin the project for the composition when the source of content for layera 770 changes, and apply the in-point shifts to out-point with overlaprule specified for layer b 780 in the project for composition 760 (e.g.,by changing the data associated with layer b 780 in the project). Noticehere that the application of the in-point shifts to out-point withoverlap rule shifts the in-point of layer b 780 and the out-point oflayer b by the same amount of time to cause the in-point of layer b 780to be a point in time in the composition defined by layer a's out-pointminus the number of frames specified as the overlap (e.g., in thisexample 15 frames). In other words, the in-point of layer b 780 may bedefined to be the number of overlap frames earlier than the out-point oflayer a 770.

Now looking at FIG. 8A, a block diagram depicting one embodiment of aninterface for allowing a user to define an “out-point shifts toin-point” rule is shown. Such a rule may specify that when a layer (herelayer b) changes duration, that layer's out-point will shift to the sameposition in time as a target layer's (here layer a) in-point. Thus, suchan interface may be presented by a temporal sculpting module when a useris defining effects for layer b in a digital compositing platform. Inparticular, interface 810 may allow a user to specify control parametersfor a layer (the “controlled layer”, here layer b). Interface 810provides a time menu 812 for the controlled layer including controlsallowing a user to define one or more time-sculpting rules with respectto that layer. This time menu may include shift menu 814 where the shifttarget (e.g. here layer a) may be specified, along with the rule thatthe out-point for the controlled layer (layer b) should be shifted tothe in-point of the target layer (layer a).

FIG. 8B is a block diagram depicting one embodiment of the effect ofapplying an out-point shifts to in-point rule as defined in FIG. 8A tothe controlled layer (layer b). Composition 860 a depicts an initialstate of the composition 860. Initially then, layer a 870 is compositedatop layer b 880 and layer b 880 has a first source of content.Composition 860 b depicts a state of composition 860 after the source ofcontent of layer b 880 changes, before the application of the out-pointshifts to in-point rule defined for layer b 880. Composition 860 cdepicts the state of the composition 860 after the application of thein-point shifts to in-point rule defined in FIG. 8A. Thus, for example,a rules engine of a temporal sculpting module may evaluate the rulesassociated with composition 860 as defined in the project for thecomposition when the source of content for layer b 880 changes, andapply the out-point shifts to in-point rule specified for layer b 880 inthe project for composition 860 (e.g., by changing the data associatedwith layer b 880 in the project). Notice here that the application ofthe out-point shifts to in-point rule shifts the in-point of layer b 880and the out-point of layer b by the same amount of time to cause theout-point of layer b 880 to reach (e.g., be the same point in time inthe composition as) layer a's in-point.

FIG. 9A is a block diagram depicting one embodiment of an interface forallowing a user to define an “out-point shifts to In-point with overlap”rule is shown. Such a rule may specify that when a layer (here layer b)changes duration, that layer's out-point will shift to the same positionin time as a target layer's (here layer a) in-point plus some amount offrames. Such an interface may be presented by a temporal sculptingmodule when a user is defining effects for layer b in a digitalcompositing platform. Interface 910 may allow a user to specify controlparameters for the controlled layer (here layer b) by providing a timemenu 912 for the controlled layer including controls allowing a user todefine one or more time-sculpting rules with respect to that layer. Thistime menu 912 may include shift menu 914 where the shift target (e.g.here layer a) may be specified, along with the rule that the out-pointfor the controlled layer (layer b) should be shifted to the in-point ofthe target layer (layer a) with an overlap of a certain number of frames(here 15).

FIG. 9B is a block diagram depicting one embodiment of the effect ofapplying an in-point shifts to in-point rule plus overlap as defined inFIG. 9A to the controlled layer (layer b). Composition 960 a depicts aninitial state of the composition 960. Initially then, layer a 970 iscomposited atop layer b 980 and layer b 980 has a first source ofcontent. Composition 960 b depicts a state of composition 960 after thesource of content of layer b 980 changes, before the application of theout-point shifts to in-point with overlap rule defined for layer b 980.Composition 960 c depicts the state of the composition 960 after theapplication of the out-point shifts to in-point rule with overlapdefined in FIG. 9A. Thus, for example, a rules engine of a temporalsculpting module may evaluate the rules associated with composition 960as defined in the project for the composition when the source of contentfor layer a 970 changes, and apply the out-point shifts to in-point withoverlap rule specified for layer b 980 in the project for composition960 (e.g., by changing the data associated with layer b 980 in theproject). Notice here that the application of the out-point shifts toin-point with overlap rule shifts the in-point of layer b 980 and theout-point of layer b by the same amount of time to cause the out-pointof layer b 980 to be a point in time in the composition defined by layera's in-point plus the number of frames specified as the overlap (e.g.,in this example 15 frames).

Referring to FIG. 10A now, a block diagram depicting one embodiment ofan interface for allowing a user to define an “out-point shifts toout-point” rule is shown. Such a rule may specify that when a targetlayer (here layer a) changes duration, the control layer's out-pointwill shift to the same position in time as the target layer's (herelayer a) out-point. Thus, such an interface may be presented by atemporal sculpting module when a user is defining effects for layer b ina digital compositing platform. In particular, interface 1010 may allowa user to specify control parameters for the controlled layer (herelayer b). Interface 1010 provides a time menu 1012 for the controlledlayer including controls allowing a user to define one or moretime-sculpting rules with respect to that layer. This time menu mayinclude shift menu 1014 where the shift target (e.g. here layer a) maybe specified, along with the rule that the out-point for the controlledlayer (layer b) should be shifted to the out-point of the target layer(layer a).

FIG. 10B is a block diagram depicting one embodiment of the effect ofapplying an out-point shifts to out-point rule as defined in FIG. 10A tothe controlled layer (layer b). Composition 1060 a depicts an initialstate of the composition 1060. Initially then, layer a 1070 iscomposited atop layer b 1080 and layer a 1070 has a first source ofcontent. Composition 1060 b depicts a state of composition 1060 afterthe source of content of layer a 1070 changes, before the application ofthe out-point shifts to out-point rule defined for layer b 1080.Composition 1060 c depicts the state of the composition 1060 after theapplication of the out-point shifts to out-point rule defined in FIG.10A. For example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 1060 as defined in theproject for the composition when the source of content for layer a 1070changes, and apply the out-point shifts to out-point rule specified forlayer b 1080 in the project for composition 1060 (e.g., by changing thedata associated with layer b 1080 in the project). Notice here that theapplication of the out-point sifts to out-point rule shifts the in-pointof layer b 1080 and the out-point of layer b by the same amount of timeto cause the out-point of layer b 1080 to reach (e.g., be the same pointin time in the composition as) layer a's out-point.

Similarly, in FIG. 11A a block diagram depicting one embodiment of aninterface for allowing a user to define an “out-point shifts toout-point with overlap” rule is shown. Such a rule may specify that whena target layer (here layer a) changes duration, a controlled layer'sout-point will shift to the same position in time as the target layer's(here layer a) out-point minus (e.g., earlier in time by) some amount offrames. Such an interface may be presented by a temporal sculptingmodule when a user is defining effects for layer b in a digitalcompositing platform. Interface 1110 may allow a user to specify controlparameters for the controlled layer (here layer b) by providing a timemenu 1112 for the controlled layer including controls allowing a user todefine one or more time-sculpting rules with respect to that layer. Thistime menu 1112 may include shift menu 1114 where the shift target (e.g.here layer a) may be specified, along with the rule that the out-pointfor the controlled layer (layer b) should be shifted to the out-point ofthe target layer (layer a) minus an overlap of a certain number offrames (here 15).

FIG. 11B is a block diagram depicting one embodiment of the effect ofapplying an out-point shifts to out-point rule with overlap as definedin FIG. 11A to the controlled layer (layer b). Composition 1160 adepicts an initial state of the composition 1160. Initially then, layera 1170 is composited atop layer b 1180 and layer b 1180 has a firstsource of content. Composition 1160 b depicts a state of composition1160 after the source of content of layer b 1180 changes, before theapplication of the out-point shifts to out-point with overlap ruledefined for layer b 1180. Composition 1160 c depicts the state of thecomposition 1160 after the application of the out-point shifts toout-point rule with overlap defined in FIG. 11A. For example, a rulesengine of a temporal sculpting module may evaluate the rules associatedwith composition 1160 as defined in the project for the composition whenthe source of content for layer a 1170 changes, and apply the out-pointshifts to out-point with overlap rule specified for layer b 1180 in theproject for composition 1160 (e.g., by changing the data associated withlayer b 1180 in the project). Notice here that the application of theout-point shifts to out-point with overlap rule shifts the out-point oflayer b 1180 and the out-point of layer b 1180 by the same amount oftime to cause the out-point of layer b 1180 to be a point in time in thecomposition defined by layer a's out-point minus the number of framesspecified as the overlap (e.g., in this example 15 frames). In otherwords, the out-point of layer b 1180 may be defined to be the number ofoverlap frames earlier than the out-point of layer a 1170.

The type of time-sculpting rules discussed above with respect to FIGS.4A-11B are time shifting rules that allow a layer to be temporallyarranged by being moved with respect to a composition's timeline basedon a temporal link established with a target point within a target layersuch that when a layer is modified (e.g., altered, substituted, swapped,etc.) a layer may be time shifted based on the modified layer.Embodiments herein may also provide trimming rules that allow a layer tobe trimmed (e.g., have some content removed, or have a differentin-point or out-point). These types of rules may establish a temporallink between a layer and one or more target points in one or more targetlayers such that when one of the target layers is altered (e.g., tocontent with a different length) the content of the control layer may betrimmed (e.g., have some content removed or have an in-point orout-point altered) to the target point in the target layer. Embodimentsof these types of trimming rules may be better understood with referenceto FIGS. 12A-19B.

Turning first to FIG. 12A, a block diagram depicting one embodiment ofan interface for allowing a user to define an “in-point trims toin-point” rule is shown. Such a rule may specify that when a targetlayer (here layer a) changes duration (e.g., because the source changesor the content from the source changed), the control layer's (here layerb) in-point will be trimmed to the same position in time as the targetlayer's (here layer a) in-point. Thus, such an interface may bepresented by a temporal sculpting module when a user is defining effectsfor a control layer (here layer b) in a digital compositing platform. Inparticular, interface 1210 may allow a user to specify controlparameters for a layer (the “controlled layer”, here layer b). Interface1210 provides a time menu 1212 for the controlled layer includingcontrols allowing a user to define one or more time-sculpting rules withrespect to that layer. This time menu may include trim menu 1216 wherethe trim target (e.g. here layer a) may be specified, along with therule that the in-point for the controlled layer (layer b) should betrimmed to the in-point of the target layer (layer a).

FIG. 12B is a block diagram depicting one embodiment of the effect ofapplying an in-point trims to in-point rule as defined in FIG. 12A tothe controlled layer (layer b). Composition 1260 a depicts an initialstate of the composition 1260. Initially then, layer a 1270 iscomposited atop layer b 1280 and layer a 1270 has a first source ofcontent. Composition 1260 b depicts a state of composition 1260 afterthe source of content of layer a 1270 changes, before the application ofthe in-point trims to in-point rule defined for layer b 1280.Composition 1260 c depicts the state of the composition 1260 after theapplication of the in-point trims to in-point rule defined in FIG. 12A.Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 1260 as defined in theproject for the composition when the source of content for layer a 1270changes, and apply the in-point trims to in-point rule specified forlayer b 1280 in the project for composition 1260 (e.g., by changing thedata associated with layer b 1280 in the project). Notice here that theapplication of the in-point trims to in-point rule shifts the in-pointof layer b 1280 to cause the in-point of layer b 1280 to match (e.g., bethe same point in time in the composition as) layer a's in-point. Noticeas well, in contrast with an in-point shift to in-point rules asdescribed above with respect to FIGS. 4A and 4B, that here layer b 1280has NOT shifted in time (e.g., the start point and end point of layer b1280 are still at the same point in time relative to the composition1260), the in-point of layer b 1280 has just been moved to match thein-point of layer a 1270 (which has trimmed layer b 1280 by leaving aportion 1282 of layer b 1280 that will not be displayed in composition1260 when rendered).

Similarly, in FIG. 13A, a block diagram depicting one embodiment of aninterface for allowing a user to define an “in-point trims to in-pointwith overlap” rule is shown. Such a rule may specify that when a targetlayer (here layer a) changes duration (e.g., because the source changesor the content from the source changed), the control layer's (here layerb) in-point will be trimmed to the same position in time as the targetlayer's (here layer a) in-point plus (e.g., later in time) some amountof frames. Such an interface may be presented by a temporal sculptingmodule when a user is defining effects for a control layer (here layerb) in a digital compositing platform. In particular, interface 1310 mayallow a user to specify control parameters for the control layer (herelayer b). Interface 1310 provides a time menu 1312 for the controlledlayer including controls allowing a user to define one or moretime-sculpting rules with respect to that layer. This time menu mayinclude trim menu 1316 where the trim target (e.g. here layer a) may bespecified, along with the rule that the in-point for the controlledlayer (layer b) should be trimmed to the in-point of the target layer(layer a) plus an overlap of a certain number of frames (here 15).

FIG. 13B is a block diagram depicting one embodiment of the effect ofapplying an in-point trims to in-point rule with overlap as defined inFIG. 13A to the controlled layer (layer b). Composition 1360 a depictsan initial state of the composition 1360. Initially then, layer a 1370is composited atop layer b 1380 and layer a 1370 has a first source ofcontent. Composition 1360 b depicts a state of composition 1360 afterthe source of content of layer a 1370 changes, before the application ofthe in-point trims to in-point rule plus overlap defined for layer b1380. Composition 1360 c depicts the state of the composition 1360 afterthe application of the in-point trims to in-point rule with overlapdefined in FIG. 13A. Thus, for example, a rules engine of a temporalsculpting module may evaluate the rules associated with composition 1360as defined in the project for the composition when the source of contentfor layer a 1370 changes, and apply the in-point trims to in-point rulewith overlap specified for layer b 1380 in the project for composition1360 (e.g., by changing the data associated with layer b 1380 in theproject).

Notice here that the application of the in-point trims to in-point withoverlap rule shifts the in-point of layer b 1380 to cause the in-pointof layer b 1380 to match (e.g., be the same point in time in thecomposition as) layer a's in-point plus a number of frames (here 15).Notice as well, that the in-point of layer b has just been moved tomatch the in-point of layer a 1370 plus the overlap number of frames(e.g., 15); layer b 1380 has not shifted. Accordingly, layer b 1380 hasbeen trimmed by leaving a portion 1382 of layer b 1380 that will not bedisplayed in composition 1360 when rendered. When comparing with theapplication of an in-point trims to in-point rule in a similarcomposition containing similar layers as depicted in FIG. 12B, thisportion 1382 has increased by the overlap number of frames (e.g., 15).

Moving to FIG. 14A, a block diagram depicting one embodiment of aninterface for allowing a user to define an “in-point trims to out-point”rule is shown. Such a rule may specify that when a target layer (herelayer a) changes duration (e.g., because the source changes or thecontent from the source changed), the control layer's (here layer b)in-point will be trimmed to the same position in time as the targetlayer's (here layer a) out-point. Thus, such an interface may bepresented by a temporal sculpting module when a user is defining effectsfor a control layer (here layer b) in a digital compositing platform. Inparticular, interface 1410 may allow a user to specify controlparameters for a layer (the “controlled layer”, here layer b). Interface1410 provides a time menu 1412 for the controlled layer includingcontrols allowing a user to define one or more time-sculpting rules withrespect to that layer. This time menu may include trim menu 1416 wherethe trim target (e.g. here layer a) may be specified, along with therule that the in-point for the controlled layer (layer b) should betrimmed to the out-point of the target layer (layer a).

FIG. 14B is a block diagram depicting one embodiment of the effect ofapplying an in-point trims to out-point rule as defined in FIG. 14A tothe controlled layer (layer b). Composition 1460 a depicts an initialstate of the composition 1460. Initially then, layer a 1470 iscomposited atop layer b 1480 and layer a 1470 has a first source ofcontent. Composition 1460 b depicts a state of composition 1460 afterthe source of content of layer a 1470 changes, before the application ofthe in-point trims to out-point rule defined for layer b 1480.Composition 1460 c depicts the state of the composition 1460 after theapplication of the in-point trims to out-point rule defined in FIG. 14A.Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 1460 as defined in theproject for the composition when the source of content for layer a 1470changes, and apply the in-point trims to out-point rule specified forlayer b 1480 in the project for composition 1460 (e.g., by changing thedata associated with layer b 1480 in the project). Notice here that theapplication of the in-point trims to out-point rule shifts the in-pointof layer b 1480 to cause the in-point of layer b 1480 to match (e.g., bethe same point in time in the composition as) layer a's out-point.Notice as well, in contrast with an in-point shift to out-point rules asdescribed above with respect to FIGS. 6A and 6B, that here layer b 1480has NOT shifted in time (e.g., the start point and end point of layer b1480 are still at the same point in time relative to the composition1460), the in-point of layer b 1480 has just been moved to match thein-point of layer a 1470 (which has trimmed layer b 1480 by leaving aportion 1482 of layer b 1480 that will not be displayed in composition1460 when rendered).

FIG. 15A depicts a block diagram of one embodiment of an interface forallowing a user to define an “in-point trims to out-point with overlap”rule is shown. Such a rule may specify that when a target layer (herelayer a) changes duration the control layer's (here layer b) in-pointwill be trimmed to the same position in time as the target layer's (herelayer a) out-point minus (e.g., earlier in time) some amount of frames.Such an interface may be presented by a temporal sculpting module when auser is defining effects for a control layer (here layer b) in a digitalcompositing platform. In particular, interface 1510 may allow a user tospecify control parameters for the control layer (here layer b).Interface 1510 provides a time menu 1512 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include trim menu1516 where the trim target (e.g. here layer a) may be specified, alongwith the rule that the in-point for the controlled layer (layer b)should be trimmed to the out-point of the target layer (layer a) minusan overlap of a certain number of frames (here 15).

FIG. 15B is a block diagram depicting one embodiment of the effect ofapplying an in-point trims to out-point rule with overlap as defined inFIG. 15A to the controlled layer (layer b). Composition 1560 a depictsan initial state of the composition 1560. Initially then, layer a 1570is composited atop layer b 1580 and layer a 1570 has a first source ofcontent. Composition 1560 b depicts a state of composition 1560 afterthe source of content of layer a 1570 changes, before the application ofthe in-point trims to out-point rule defined for layer b 1580.Composition 1560 c depicts the state of the composition 1560 after theapplication of the in-point trims to out-point rule with overlap definedin FIG. 15A. Thus, for example, a rules engine of a temporal sculptingmodule may evaluate the rules associated with composition 1560 asdefined in the project for the composition when the source of contentfor layer a 1570 changes, and apply the in-point trims to out-point rulewith overlap specified for layer b 1580 in the project for composition1560 (e.g., by changing the data associated with layer b 1580 in theproject).

Notice here that the application of the in-point trims to out-point withoverlap rule shifts the in-point of layer b 1580 to cause the in-pointof layer b 1580 to match (e.g., be the same point in time in thecomposition as) layer a's out-point minus a number of frames (here 15).Notice as well, that the in-point of layer b has just been moved tomatch the out-point of layer a 1570 plus the overlap number of frames(e.g., 15); layer b 1580 has not shifted. Accordingly, layer b 1580 hasbeen trimmed by leaving a portion 1582 of layer b 1580 that will not bedisplayed in composition 1560 when rendered. When comparing with theapplication of an in-point trims to out-point rule in a similarcomposition containing similar layers as depicted in FIG. 14B, thisportion 1582 has decreased by the overlap number of frames (e.g., 15).

In FIG. 16A, a block diagram depicting one embodiment of an interfacefor allowing a user to define an “out-point trims to out-point” rule isshown. Such a rule may specify that when a target layer (here layer a)changes duration (e.g., because the source changes or the content fromthe source changed), the control layer's (here layer b) out-point willbe trimmed to the same position in time as the target layer's (herelayer a) out-point. Thus, such an interface may be presented by atemporal sculpting module when a user is defining effects for a controllayer (here layer b) in a digital compositing platform. In particular,interface 1610 may allow a user to specify control parameters for alayer (the “controlled layer”, here layer b). Interface 1610 provides atime menu 1612 for the controlled layer including controls allowing auser to define one or more time-sculpting rules with respect to thatlayer. This time menu may include trim menu 1616 where the trim target(e.g. here layer a) may be specified, along with the rule that theout-point for the controlled layer (layer b) should be trimmed to theout-point of the target layer (layer a).

FIG. 16B is a block diagram depicting one embodiment of the effect ofapplying an out-point trims to out-point rule as defined in FIG. 16A tothe controlled layer (layer b). Composition 1660 a depicts an initialstate of the composition 1660. Initially then, layer a 1670 iscomposited atop layer b 1680 and layer a 1670 has a first source ofcontent. Composition 1660 b depicts a state of composition 1660 afterthe source of content of layer a 1670 changes, before the application ofthe out-point trims to out-point rule defined for layer b 1680.Composition 1660 c depicts the state of the composition 1660 after theapplication of the out-point trims to out-point rule defined in FIG.16A. Thus, for example, a rules engine of a temporal sculpting modulemay evaluate the rules associated with composition 1660 as defined inthe project for the composition when the source of content for layer a1670 changes, and apply the out-point trims to out-point rule specifiedfor layer b 1680 in the project for composition 1660 (e.g., by changingthe data associated with layer b 1680 in the project). Notice here thatthe application of the out-point trims to out-point rule shifts theout-point of layer b 1680 to cause the out-point of layer b 1680 tomatch (e.g., be the same point in time in the composition as) layer a'sout-point. Notice as well, in contrast with an out-point shift toout-point rules as described above with respect to FIGS. 10A and 10B,that here layer b 1680 has NOT shifted in time (e.g., the start pointand end point of layer b 1680 are still at the same point in timerelative to the composition 1660), the out-point of layer b 1680 hasjust been moved to match the out-point of layer a 1670 (which hastrimmed layer b 1680 by leaving a portion 1682 of layer b 1680 that willnot be displayed in composition 1660 when rendered).

FIG. 17A depicts a block diagram of one embodiment of an interface forallowing a user to define an “out-point trims to out-point with overlap”rule is shown. Such a rule may specify that when a target layer (herelayer a) changes duration the control layer's (here layer b) out-pointwill be trimmed to the same position in time as the target layer's (herelayer a) out-point minus (e.g., earlier in time) some amount of frames.Such an interface may be presented by a temporal sculpting module when auser is defining effects for a control layer (here layer b) in a digitalcompositing platform. In particular, interface 1710 may allow a user tospecify control parameters for the control layer (here layer b).Interface 1710 provides a time menu 1712 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include trim menu1716 where the trim target (e.g. here layer a) may be specified, alongwith the rule that the out-point for the controlled layer (layer b)should be trimmed to the out-point of the target layer (layer a) minusan overlap of a certain number of frames (here 15).

FIG. 17B is a block diagram depicting one embodiment of the effect ofapplying an out-point trims to out-point rule with overlap as defined inFIG. 17A to the controlled layer (layer b). Composition 1760 a depictsan initial state of the composition 1760. Initially then, layer a 1770is composited atop layer b 1780 and layer a 1770 has a first source ofcontent. Composition 1760 b depicts a state of composition 1760 afterthe source of content of layer a 1770 changes, before the application ofthe out-point trims to out-point rule with overlap defined for layer b1780. Composition 1760 c depicts the state of the composition 1760 afterthe application of the out-point trims to out-point rule with overlapdefined in FIG. 17A. Thus, for example, a rules engine of a temporalsculpting module may evaluate the rules associated with composition 1760as defined in the project for the composition when the source of contentfor layer a 1770 changes, and apply the out-point trims to out-pointrule with overlap specified for layer b 1780 in the project forcomposition 1760 (e.g., by changing the data associated with layer b1780 in the project).

Notice here that the application of the out-point trims to out-pointwith overlap rule shifts the out-point of layer b 1780 to cause theout-point of layer b 1780 to match (e.g., be the same point in time inthe composition as) layer a's out-point minus a number of frames (here15). Notice as well, that the out-point of layer b has just been movedto match the out-point of layer a 1770 minus the overlap number offrames (e.g., 15); layer b 1780 has not shifted. Accordingly, layer b1780 has been trimmed by leaving a portion 1782 of layer b 1780 thatwill not be displayed in composition 1760 when rendered. When comparingwith the application of an out-point trims to out-point rule in asimilar composition containing similar layers as depicted in FIG. 16B,this portion 1782 has increased by the overlap number of frames (e.g.,15).

FIG. 18A is a block diagram depicting one embodiment of an interface forallowing a user to define an “out-point trims to in-point” rule. Such arule may specify that when a target layer (here layer a) changesduration (e.g., because the source changes or the content from thesource changed), the control layer's (here layer b) out-point will betrimmed to the same position in time as the target layer's (here layera) in-point. Thus, such an interface may be presented by a temporalsculpting module when a user is defining effects for a control layer(here layer b) in a digital compositing platform. In particular,interface 1810 may allow a user to specify control parameters for alayer (the “controlled layer”, here layer b). Interface 1810 provides atime menu 1812 for the controlled layer including controls allowing auser to define one or more time-sculpting rules with respect to thatlayer. This time menu may include trim menu 1816 where the trim target(e.g. here layer a) may be specified, along with the rule that theout-point for the controlled layer (layer b) should be trimmed to thein-point of the target layer (layer a).

FIG. 18B is a block diagram depicting one embodiment of the effect ofapplying an out-point trims to in-point rule as defined in FIG. 18A tothe controlled layer (layer b). Composition 1860 a depicts an initialstate of the composition 1860. Initially then, layer a 1870 iscomposited atop layer b 1880 and layer a 1870 has a first source ofcontent. Composition 1860 b depicts a state of composition 1860 afterthe source of content of layer a 1870 changes, before the application ofthe out-point trims to in-point rule defined for layer b 1880.Composition 1860 c depicts the state of the composition 1860 after theapplication of the out-point trims to in-point rule defined in FIG. 18A.Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 1860 as defined in theproject for the composition when the source of content for layer a 1870changes, and apply the out-point trims to in-point rule specified forlayer b 1880 in the project for composition 1860 (e.g., by changing thedata associated with layer b 1880 in the project). Notice here that theapplication of the out-point trims to in-point rule shifts the out-pointof layer b 1860 to cause the out-point of layer b 1860 to match (e.g.,be the same point in time in the composition as) layer a's in-point.Notice as well, in contrast with an out-point shift to out-point rulesas described above with respect to FIGS. 8A and 8B, that here layer b1880 has NOT shifted in time (e.g., the start point and end point oflayer b 1880 are still at the same point in time relative to thecomposition 1860), the out-point of layer b 1880 has just been moved tomatch the in-point of layer a 1870 (which has trimmed layer b 1880 byleaving a portion 1882 of layer b 1880 that will not be displayed incomposition 1860 when rendered).

FIG. 19A depicts a block diagram of one embodiment of an interface forallowing a user to define an “out-point trims to in-point with overlap”rule is shown. Such a rule may specify that when a target layer (herelayer a) changes duration the control layer's (here layer b) out-pointwill be trimmed to the same position in time as the target layer's (herelayer a) in-point plus (e.g., later in time) some amount of frames. Suchan interface may be presented by a temporal sculpting module when a useris defining effects for a control layer (here layer b) in a digitalcompositing platform. In particular, interface 1910 may allow a user tospecify control parameters for the control layer (here layer b).Interface 1910 provides a time menu 1912 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include trim menu1916 where the trim target (e.g. here layer a) may be specified, alongwith the rule that the out-point for the controlled layer (layer b)should be trimmed to the in-point of the target layer (layer a) plus anoverlap of a certain number of frames (here 15).

FIG. 19B is a block diagram depicting one embodiment of the effect ofapplying an out-point trims to in-point rule with overlap as defined inFIG. 19A to the controlled layer (layer b). Composition 1960 a depictsan initial state of the composition 1960. Initially then, layer a 1970is composited atop layer b 1980 and layer a 1970 has a first source ofcontent. Composition 1960 b depicts a state of composition 1960 afterthe source of content of layer a 1970 changes, before the application ofthe out-point trims to in-point rule with overlap defined for layer b1980. Composition 1960 c depicts the state of the composition 1960 afterthe application of the out-point trims to in-point rule with overlapdefined in FIG. 19A. Thus, for example, a rules engine of a temporalsculpting module may evaluate the rules associated with composition 1960as defined in the project for the composition when the source of contentfor layer a 1970 changes, and apply the out-point trims to in-point rulewith overlap specified for layer b 1980 in the project for composition1960 (e.g., by changing the data associated with layer b 1980 in theproject).

Notice here that the application of the out-point trims to in-point withoverlap rule shifts the out-point of layer b 1980 to cause the out-pointof layer b 1980 to match (e.g., be the same point in time in thecomposition as) layer a's in-point plus a number of frames (here 15).Notice as well, that the out-point of layer b 1980 has just been movedto match the in-point of layer a 1970 plus the overlap number of frames(e.g., 15); layer b 1980 has not shifted. Accordingly, layer b 1980 hasbeen trimmed by leaving a portion 1982 of layer b 1980 that will not bedisplayed in composition 1960 when rendered. When comparing with theapplication of an out-point trims to in-point rule in a similarcomposition containing similar layers as depicted in FIG. 18B, thisportion 1982 has decreased by the overlap number of frames (e.g., 15).

The type of time-sculpting rules discussed above with respect to FIGS.12A-19B are trimming rules that may establish a temporal link between acontrolled layer and one or more target points in one or more targetlayers such that when one of the target layers is altered (e.g.,modified or substituted with content of a different length) the controllayer may be trimmed (e.g., have some content removed, or an in-point orout-point altered). Embodiments herein may also provide stretching rulesthat allow a layer to be stretched (e.g., the time of appearance in acomposition, or of the layer, lengthened or shortened), for example tomake a longer (or shorter) video or the like when the content of thelayer includes a video. These types of stretching rules may establish atemporal link between a controlled layer and one or more target pointsin one or more target layers or a composition such that when a layer isaltered (e.g., modified or substituted with content of a differentlength) the content of the control layer may be lengthened (orshortened). This time stretching (lengthening or shortening) may beaccomplished, for example, by changing the playback speed of the contentof the control layer in the composition. Embodiments of these types ofstretching rules may be better understood with reference to FIGS.20A-24B.

Looking first then at FIG. 20A, a block diagram depicting one embodimentof an interface for allowing a user to define a “stretch to in-point”rule is shown. Such a rule may specify that when a control layer (herelayer b) changes (e.g., because the source changes or the content fromthe source changed), the control layer's (here layer b) playback speedwill be adjusted such that the control layer's (here layer b) out-pointwill be at the same position in time (relative to the composition) asthe target layer's (here layer a) in-point. Thus, such an interface maybe presented by a temporal sculpting module when a user is definingeffects for a control layer (here layer b) in a digital compositingplatform. In particular, interface 2010 may allow a user to specifycontrol parameters for a layer (the “controlled layer”, here layer b).Interface 2010 provides a time menu 2012 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include stretchmenu 2018 where the stretch target (e.g. here layer a) may be specified,along with the rule that the controlled layer (layer b) should bestretched to the in-point of the target layer (layer a).

FIG. 20B is a block diagram depicting one embodiment of the effect ofapplying a stretch to in-point rule as defined in FIG. 20A to thecontrolled layer (layer b). Composition 2060 a depicts an initial stateof the composition 2060. Initially then, layer a 2070 is composited atoplayer b 2080 and layer b 2080 has a first source of content. Composition2060 b depicts a state of composition 2060 after the source of contentof layer b 2080 changes, before the application of the stretch toin-point rule defined for layer b 2080. Composition 2060 c depicts thestate of the composition 2060 after the application of the stretch toin-point rule defined in FIG. 20A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2060 as defined in theproject for the composition when the source of content for layer b 2080changes, and apply the stretch to in-point rule specified for layer b2080 in the project for composition 2060 (e.g., by changing the dataassociated with layer b 2080 in the project). The application of therule may entail determining a new playback speed (or playback speedpercentage) for layer b 2080 based on, for example, the length of layerb 2080, the in-point of layer b 2080, the in-point of layer a 2070 orother data. The playback speed (or percentage) can be associated withlayer b 2080 in the project for the composition. Note that this playbackspeed (or percentage) may be greater than, or less than, a full ornormal speed playback. Notice here that the application of the stretchto in-point rule changes the playback speed of layer b 2080 (if needed)to cause the out-point of layer b 2080 to match (e.g., be the same pointin time in the composition as) layer a's in-point.

Similarly, in FIG. 21A, a block diagram depicting one embodiment of aninterface for allowing a user to define a “stretch to in-point withoverlap” rule is shown. Such a rule may specify that when a controllayer (here layer b) changes (e.g., because the source changes or thecontent from the source changed), the control layer's (here layer b)playback speed will be adjusted such that the control layer's (herelayer b) out-point will be at the same position in time (relative to thecomposition) as the target layer's (here layer a) in-point plus (e.g.,later in time) some amount of frames. Thus, such an interface may bepresented by a temporal sculpting module when a user is defining effectsfor a control layer (here layer b) in a digital compositing platform. Inparticular, interface 2110 may allow a user to specify controlparameters for a layer (the “controlled layer”, here layer b). Interface2110 provides a time menu 2112 for the controlled layer includingcontrols allowing a user to define one or more time-sculpting rules withrespect to that layer. This time menu may include stretch menu 2118where the stretch target (e.g. here layer a) may be specified, alongwith the rule that the controlled layer (layer b) should be stretched tothe in-point of the target layer (layer a) plus an overlap of a certainnumber of frames (here 15).

FIG. 21B is a block diagram depicting one embodiment of the effect ofapplying a stretch to in-point plus overlap rule as defined in FIG. 21Ato the controlled layer (layer b). Composition 2160 a depicts an initialstate of the composition 2160. Initially then, layer a 2170 iscomposited atop layer b 2180 and layer b 2180 has a first source ofcontent. Composition 2160 b depicts a state of composition 2160 afterthe source of content of layer b 2180 changes, before the application ofthe stretch to in-point rule defined for layer b 2180. Composition 2160c depicts the state of the composition 2160 after the application of thestretch to in-point plus overlap rule defined in FIG. 21A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2160 as defined in theproject for the composition when the source of content for layer b 2180changes, and apply the stretch to in-point rule plus overlap specifiedfor layer b 2180 in the project for composition 2160 (e.g., by changingthe data associated with layer b 2180 in the project). The applicationof the rule may entail determining a new playback speed (or playbackspeed percentage) for layer b 2180 based on, for example, the length oflayer b 2180, the in-point of layer b 2180, the in-point of layer a2170, the number of frames specified for the control layer (here layerb), or other data. The playback speed (or percentage) can be associatedwith layer b 2180 in the project for the composition. Notice here thatthe application of the stretch to in-point rule plus overlap changes theplayback speed of layer b 2180 (if needed) to cause the out-point oflayer b 2180 to match (e.g., be the same point in time in thecomposition as) layer a's in-point plus the number of frames (here 15).

FIG. 22A depicts a block diagram of one embodiment of an interface forallowing a user to define a “stretch to out-point” rule. Such a rule mayspecify that when a control layer (here layer b) changes (e.g., becausethe source changes or the content from the source changed), the controllayer's (here layer b) playback speed will be adjusted such that thecontrol layer's (here layer b) out-point will be at the same position intime (relative to the composition) as the target layer's (here layer a)out-point. Thus, such an interface may be presented by a temporalsculpting module when a user is defining effects for a control layer(here layer b) in a digital compositing platform. In particular,interface 2210 may allow a user to specify control parameters for alayer (the “controlled layer”, here layer b). Interface 2210 provides atime menu 2212 for the controlled layer including controls allowing auser to define one or more time-sculpting rules with respect to thatlayer. This time menu may include stretch menu 2218 where the stretchtarget (e.g. here layer a) may be specified, along with the rule thatthe controlled layer (layer b) should be stretched to the out-point ofthe target layer (layer a).

FIG. 22B is a block diagram depicting one embodiment of the effect ofapplying a stretch to out-point rule as defined in FIG. 22A to thecontrolled layer (layer b). Composition 2260 a depicts an initial stateof the composition 2260. Initially then, layer a 2270 is composited atoplayer b 2280 and layer b 2280 has a first source of content. Composition2260 b depicts a state of composition 2260 after the source of contentof layer b 2280 changes, before the application of the stretch toout-point rule defined for layer b 2280. Composition 2260 c depicts thestate of the composition 2260 after the application of the stretch toout-point rule defined in FIG. 22A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2260 as defined in theproject for the composition when the source of content for layer b 2280changes, and apply the stretch to out-point rule specified for layer b2280 in the project for composition 2260 (e.g., by changing the dataassociated with layer b 2280 in the project). The application of therule may entail determining a new playback speed (or playback speedpercentage) for layer b 2280 based on, for example, the length of layerb 2280, the in-point of layer b 2280, the out-point of layer a 2270 orother data. The playback speed (or percentage) can be associated withlayer b 2280 in the project for the composition. Note that this playbackspeed (or percentage) may be greater than, or less than, a full ornormal speed playback. Notice here that the application of the stretchto in-point rule changes the playback speed of layer b 2280 (if needed)to cause the out-point of layer b 2280 to match (e.g., be the same pointin time in the composition as) layer a's out-point.

In FIG. 23A, a block diagram depicting one embodiment of an interfacefor allowing a user to define a similar “stretch to out-point withoverlap” rule is shown. Such a rule may specify that when a controllayer (here layer b) changes (e.g., because the source changes or thecontent from the source changed), the control layer's (here layer b)playback speed will be adjusted such that the control layer's (herelayer b) out-point will be at the same position in time (relative to thecomposition) as the target layer's (here layer a) out-point plus (e.g.,later in time) some amount of frames. Thus, such an interface may bepresented by a temporal sculpting module when a user is defining effectsfor a control layer (here layer b) in a digital compositing platform. Inparticular, interface 2310 may allow a user to specify controlparameters for a layer (the “controlled layer”, here layer b). Interface2310 provides a time menu 2312 for the controlled layer includingcontrols allowing a user to define one or more time-sculpting rules withrespect to that layer. This time menu may include stretch menu 2318where the stretch target (e.g. here layer a) may be specified, alongwith the rule that the controlled layer (layer b) should be stretched tothe out-point of the target layer (layer a) plus an overlap of a certainnumber of frames (here 15).

FIG. 23B is a block diagram depicting one embodiment of the effect ofapplying a stretch to out-point plus overlap rule as defined in FIG. 23Ato the controlled layer (layer b). Composition 2360 a depicts an initialstate of the composition 2360. Initially then, layer a 2370 iscomposited atop layer b 2380 and layer b 2380 has a first source ofcontent. Composition 2360 b depicts a state of composition 2360 afterthe source of content of layer b 2380 changes, before the application ofthe stretch to in-point plus overlap rule defined for layer b 2380.Composition 2360 c depicts the state of the composition 2360 after theapplication of the stretch to in-point plus overlap rule defined in FIG.23A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2360 as defined in theproject for the composition when the source of content for layer b 2380changes, and apply the stretch to out-point rule plus overlap specifiedfor layer b 2380 in the project for composition 2360 (e.g., by changingthe data associated with layer b 2380 in the project). The applicationof the rule may entail determining a new playback speed (or playbackspeed percentage) for layer b 2380 based on, for example, the length oflayer b 2380, the in-point of layer b 2380, the out-point of layer a2370, the number of frames specified for the control layer (here layerb), or other data. The playback speed (or percentage) can be associatedwith layer b 2380 in the project for the composition. Notice here thatthe application of the stretch to in-point rule plus overlap changes theplayback speed of layer b 2380 (if needed) to cause the out-point oflayer b 2380 to match (e.g., be the same point in time in thecomposition as) layer a's out-point plus the number of frames (here 15).

While the above embodiments of stretching rules have utilized a targetpoint in another layer, embodiments of stretching rules may also utilizetarget points in the composition itself. For example, in one embodiment,the target for a control layer in a stretching rule may be the end timeof a containing composition. FIG. 24A depicts a block diagram of oneembodiment of an interface for allowing a user to define a “stretch toend of comp” rule. Such a rule may specify that when a control layer(here layer b) changes (e.g., because the source changes or the contentfrom the source changed), the control layer's (here layer b) playbackspeed will be adjusted such that the control layer's (here layer b)out-point will be at the same position in time as the compositioncontaining the control layer (here layer b). Thus, such an interface maybe presented by a temporal sculpting module when a user is definingeffects for a control layer (here layer b) in a digital compositingplatform. In particular, interface 2410 may allow a user to specifycontrol parameters for a layer (the “controlled layer”, here layer b).Interface 2410 provides a time menu 2412 for the controlled layerincluding controls allowing a user to define one or more time-sculptingrules with respect to that layer. This time menu may include stretchmenu 2418 where the stretch target layer (e.g., here none) may bespecified, along with the rule that the controlled layer (layer b)should be stretched to the target point of the end of the composition.

FIG. 24B is a block diagram depicting one embodiment of the effect ofapplying a stretch to out-point rule as defined in FIG. 24A to thecontrolled layer (layer b). Composition 2460 a depicts an initial stateof the composition 2460. Initially then, layer a 2470 is composited atoplayer b 2480 and layer b 2480 has a first source of content. Composition2460 b depicts a state of composition 2460 after the source of contentof layer b 2480 changes, before the application of the stretch to end ofcomp rule defined for layer b 2480. Composition 2460 c depicts the stateof the composition 2460 after the application of the stretch to end ofcomp rule defined in FIG. 24A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2460 as defined in theproject for the composition when the source of content for layer b 2480changes, and apply the stretch to end of comp rule specified for layer b2480 in the project for composition 2460 (e.g., by changing the dataassociated with layer b 2480 in the project). The application of therule may entail determining a new playback speed (or playback speedpercentage) for layer b 2480 based on, for example, the length of layerb 2480, the in-point of layer b 2480, the end time of the composition2460, or other data. The playback speed (or percentage) can beassociated with layer b 2480 in the project for the composition. Notethat this playback speed (or percentage) may be greater than, or lessthan, a full or normal speed playback. Notice here that the applicationof the stretch to end of comp rule changes the playback speed of layer b2480 (if needed) to cause the out-point of layer b 2480 to match (e.g.,be the same point in time in the composition as) the end of thecomposition 2460.

The type of time-sculpting rules discussed above with respect to FIGS.20A-24B are stretching rules that rules may establish a temporal linkbetween a controlled layer to one or more target points in one or moretarget layers or a composition such that when one of the control layersis altered (e.g., modified or substituted with content of a differentlength) the content of the control layer may be lengthened (orshortened). Embodiments herein may also provide cropping rules thatallow a user to define time cropping points (target points) with respectto a layer to establish a temporal link between the layer and thecomposition, such that when a layer changes, the in-point or out-pointof the entire composition are altered based on the in-point or out-pointof the layer. These rules may define, for example, where a compositionstarts and ends. Embodiments of these types of cropping rules may bebetter understood with reference to FIGS. 25A-26B.

Looking at FIG. 25A, a block diagram of one embodiment of an interfacefor allowing a user to define a “crop to in-point” rule is depicted.Such a rule may specify that when a control layer (here layer b) changes(e.g., because the source changes or the content from the sourcechanged), the start time of the composition containing the control layerwill be adjusted (or “cropped”) until the start time of the compositionis the same as the in-point of the control layer (here layer b). Thus,such an interface may be presented by a temporal sculpting module when auser is defining effects for a control layer (here layer b) in a digitalcompositing platform. In particular, interface 2510 may allow a user tospecify control parameters for a layer (the “controlled layer”, herelayer b). Interface 2510 provides a time menu 2512 for the controlledlayer including controls allowing a user to define one or moretime-sculpting rules with respect to that layer. This time menu mayinclude crop menu 2520 where the rule that the composition containingthe control layer (here layer b) should be cropped to the target pointof the control layer's in-point.

FIG. 25B is a block diagram depicting one embodiment of the effect ofapplying a crop to in-point rule as defined in FIG. 25A to acomposition. Composition 2560 a depicts an initial state of thecomposition 2560. Initially then, layer a 2570 is composited atop layerb 2580 and layer b 2580 has a first source of content. Composition 2560b depicts a state of composition 2560 after the source of content oflayer b 2580 changes, before the application of the crop to in-pointrule defined for layer b 2580. Composition 2560 c depicts the state ofthe composition 2560 after the application of the crop to in-point ruledefined in FIG. 25A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2560 as defined in theproject for the composition when the source of content for layer b 2580changes, and apply the crop to in-point rule specified for layer b 2580in the project for composition 2560 (e.g., by changing the dataassociated with layer b 2580 or the composition 2560 in the project).The application of the rule may entail determining a start time for thecomposition 2560 based on, for example, the in-point of layer b 2580.Notice here that the application of the crop to in-point rule changesthe start time of composition 2560 to cause the start time ofcomposition 2560 to match (e.g., be the same point in time in as) thein-point of layer b 2580.

FIG. 26A depicts a block diagram of one embodiment of an interface forallowing a user to define a “crop to out-point” rule is depicted. Such arule may specify that when a control layer (here layer b) changes (e.g.,because the source changes or the content from the source changed), theend time of the composition containing the control layer will beadjusted (or “cropped”) until the end time of the composition is thesame as the out-point of the control layer (here layer b). Thus, such aninterface may be presented by a temporal sculpting module when a user isdefining effects for a control layer (here layer b) in a digitalcompositing platform. In particular, interface 2610 may allow a user tospecify control parameters for a layer (the “controlled layer”, herelayer b). Interface 2610 provides a time menu 2612 for the controlledlayer including controls allowing a user to define one or moretime-sculpting rules with respect to that layer. This time menu mayinclude crop menu 2620 where the rule that the composition containingthe control layer (here layer b) should be cropped to the target pointof the control layer's out-point.

FIG. 26B is a block diagram depicting one embodiment of the effect ofapplying a crop to out-point rule as defined in FIG. 26A to acomposition. Composition 2660 a depicts an initial state of thecomposition 2660. Initially then, layer a 2670 is composited atop layerb 2680 and layer b 2680 has a first source of content. Composition 2660b depicts a state of composition 2660 after the source of content oflayer b 2680 changes, before the application of the crop to out-pointrule defined for layer b 2680. Composition 2660 c depicts the state ofthe composition 2660 after the application of the crop to out-point ruledefined in FIG. 26A.

Thus, for example, a rules engine of a temporal sculpting module mayevaluate the rules associated with composition 2660 as defined in theproject for the composition when the source of content for layer b 2680changes, and apply the crop to out-point rule specified for layer b 2680in the project for composition 2660 (e.g., by changing the dataassociated with layer b 2680 or the composition 2660 in the project).The application of the rule may entail determining an end time for thecomposition 2660 based on, for example, the out-point of layer b 2680.Notice here that the application of the crop to out-point rule changesthe end time of composition 2660 to cause the end time of composition2660 to match (e.g., be the same point in time in as) the out-point oflayer b 2670.

FIGS. 27A and 27B depict the simultaneous application of a crop toin-point rule and a crop to out-point rule for the same control layer.FIG. 27A is a block diagram of one embodiment of an interface forallowing a user to define a “crop to out-point” rule and “crop toin-point” rule. Such an interface may be presented by a temporalsculpting module when a user is defining effects for a control layer(here layer b) in a digital compositing platform. In particular,interface 2710 may allow a user to specify control parameters for alayer (the “controlled layer”, here layer b). Interface 2710 provides atime menu 2712 for the controlled layer including controls allowing auser to define one or more time-sculpting rules with respect to thatlayer. This time menu may include crop menu 2720 where both the rulethat the composition containing the control layer (here layer b) shouldbe cropped to the target point of the control layer's in-point (a cropto in-point rule) and the rule that the composition containing thecontrol layer (here layer b) should be cropped to the target point ofthe control layer's out-point may be specified.

FIG. 27B is a block diagram depicting one embodiment of the effect ofapplying both a crop to out-point rule and a crop to in-point rule asdefined in FIG. 27A to a composition. Composition 2760 a depicts aninitial state of the composition 2760. Initially then, layer a 2770 iscomposited atop layer b 2780 and layer b 2780 has a first source ofcontent. Composition 2760 b depicts a state of composition 2760 afterthe source of content of layer b 2780 changes, before the application ofthe crop to out-point and crop to in-point rules defined for layer b2780. Composition 2760 c depicts the state of the composition 2760 afterthe application of the crop to out-point and crop to in-point rulesdefined in FIG. 27A.

Here, a rules engine of a temporal sculpting module may evaluate therules associated with composition 2760 as defined in the project for thecomposition when the source of content for layer b 2780 changes, andapply the crop to out-point and crop to in-point rules specified forlayer b 2780 in the project for composition 2760 (e.g., by changing thedata associated with layer b 2780 or the composition 2760 in theproject). The application of the rules may entail determining both astart time and an end time for the composition 2760 based on, forexample, the in-point and out-point of layer b 2780. Notice here thatthe application of the crop to out-point and crop to in-point ruleschanges both the start time and end time of composition 2660 to causethe start time of composition 2760 to match (e.g., be the same point intime in as) the in-point of layer b 2780 and the end time of composition2760 to match the out-point of layer b 2780.

These cropping rules may also usefully be applied to different ordistinct layers of a composition to similar effect. FIGS. 28A and 28Bare, respectively, block diagrams of embodiments of interfaces forallowing a user to define a crop to out-point rule for one layer (layerb) and a crop to in-point rule for another layer (layer a). Theseinterfaces are substantially similar to those depicted and describedabove with respect to FIGS. 26A and 27A. As can be seen then, in theexamples depicted for one control layer (layer b) a rule defining thatthe start time of the composition containing the control layer (layer b)should be cropped to the target point of the control layer's out-point(a crop to out-point rule) has been specified and for another controllayer (layer a) a rule defining that the start point of the compositioncontaining the control layer (layer a) should be cropped to the targetpoint of the control layer's in-point (a crop to out-point rule) hasbeen defined.

FIG. 28C is a block diagram depicting one embodiment of the effect ofapplying both the crop to out-point rule (for layer b) and the crop toin-point rule (for layer a) as defined in FIGS. 28A and 28B to acomposition. Composition 2860 a depicts an initial state of thecomposition 2860. Initially then, layer a 2870 is composited atop layerb 2880 and layer b 2880 has a first source of content. Composition 2860b depicts a state of composition 2860 after the source of content oflayer b 2880 changes, before the application of the crop to out-pointand crop to in-point rules defined for layer b 2880 and layer a 2870.Composition 2860 c depicts the state of the composition 2860 after theapplication of the crop to out-point and crop to in-point rules definedin FIGS. 28A and 28B.

Here, a rules engine of a temporal sculpting module may evaluate therules associated with composition 2860 as defined in the project for thecomposition when the source of content for layer b 2880 changes, andapply the crop to out-point and crop to in-point rules specified forlayer b 2880 and layer a 2870 in the project for composition 2860 (e.g.,by changing the data associated with layer b 2880, layer a 2870 or thecomposition 2860 in the project). The application of the rules mayentail determining both a start time and an end time for the composition2860 based on, for example, the in-point of layer a 2870 and theout-point of layer b 2880. Notice here that the application of the cropto out-point and crop to in-point rules changes both the start time andend time of composition 2860 to cause the start time of composition 2860to match (e.g., be the same point in time in as) the in-point of layer a2870 and the end time of composition 2860 to match the out-point oflayer b 2880. Notice as well that the change in layer b 2880 caused theapplication of both the crop to in-point rule associated with layer a2870 and the crop to out-point rule associated with layer b 2880(despite the fact that layer a 2870 may not have changed).

It may now be useful to illustrate other applications and uses ofembodiments of time-sculpting rules for digital compositions asdescribed herein. The examples and applications and uses may reflectreal-world applications and uses for the time-sculpting rules andillustrate the efficacy and usefulness of such time-sculpting rules. Forexample, it is often the case that digital editors may desire to have acomposition with a layers that include a dynamic intro, a main segmentand a trailing outro. As noted above, however, the content of the layersmay change (sometimes often) when creating the composition. Usingembodiments of the time-sculpting rules as discussed then, a digitaleditor may define rules for the layers of such a composition so that thedesired temporal relationships between certain layers of the compositionmay be maintained.

For the above described scenario, in which a composition includes adynamic intro, a main segment and a trailing outro, FIG. 29A is a blockdiagram depicting one embodiment of an interface where a user isdefining time-sculpting rules for the “outro” layer of a composition.Notice in the depicted interface the user has defined in-point shifts toout-point with overlap rule for the outro layer, where the target layeris the “main” layer of the composition and the number of frames ofoverlap is 15. Additionally, the user has defined a crop to out-pointrule for the outro layer, such that end point of the compositioncontaining the outro layer will be cropped to the out-point of the outrolayer. FIG. 29B is a block diagram depicting one embodiment of aninterface where a user is defining time-sculpting rules for the “main”layer of a composition. Here, the user has defined an in-point shifts toout-point with overlap rule for the main layer, where the target layeris the “intro” layer of the composition and the number of frames ofoverlap is 15.

FIG. 29C depicts a block diagram of one embodiment of the effect ofapplying the temporal sculpting rules as defined in FIGS. 29A and 29B toa composition including an intro, main and outro layer. In particular,composition 2960 a depicts an initial state of the composition 2960.Initially then, outro layer 2970 is composited atop intro layer 2980 andmain layer 2990. Composition 2960 b depicts a state of composition 2960after the source of content of the intro layer 2980 and the main layer2990 changes, before the application of the rules defined for outrolayer 2970 and main layer 2990. Composition 2960 c depicts the state ofthe composition 2960 after the application of the rules for the outrolayer 2970 and main layer 2990 defined in FIGS. 29A and 29B.

Here, a rules engine of a temporal sculpting module may evaluate therules associated with composition 2960 as defined in the project for thecomposition when the source of content for intro layer 2980 or mainlayer 2990 changes, and apply the shift in-point to out-point rules withoverlap specified for the main layer 2990 and outro layer 2970 and thecrop to out-point rule specified for the outro layer 2970 in the projectfor composition 2960 (e.g., by changing the data associated with mainlayer 2990, outro layer 2970 or the composition 2960 in the project).Notice here that the application of the shift to in-point rule withoverlap specified for the for the main layer 2990 causes the in-point ofmain layer 2990 to be a point in time in the composition defined byintro layer's (the target layer) out-point minus the number of framesspecified as the overlap (e.g., 15 frames). In other words, the in-pointof main layer 2990 may be defined to be the number of overlap framesearlier than the out-point of intro layer 2980. Similarly, theapplication of the shift to in-point rule with overlap specified for thefor the outro layer 2970 causes the in-point of outro layer 2970 to be apoint in time in the composition defined by main layer's (the targetlayer) out-point minus the number of frames specified as the overlap(e.g., 15 frames). In other words, the in-point of outro layer 2970 maybe defined to be the number of overlap frames earlier than the out-pointof main layer 2990. Additionally, the application of the crop toout-point rule associated with outro layer 2970 causes the end point ofcomposition 2960 to be the same as the out-point of outro layer 2970.

Now suppose that a composition includes an intro layer, a main layer andan outro layer, and a digital editor wishes to include a graphic layerthat is displayed as long as the main layer is displayed in thecomposition. To ensure that this temporal arrangement is maintained insuch a scenario, a digital editor may utilize embodiments of thetime-sculpting rules presented herein for their composition. FIGS.30A-30C are block diagrams depicting such a scenario. FIG. 30A is ablock diagram depicting one embodiment of an interface where a user isdefining time-sculpting rules for the “outro” layer of a composition.Notice in the interface the user has defined an in-point shifts toout-point with overlap rule for the outro layer, where the target layeris the “main” layer of the composition and the number of frames ofoverlap is 15. Additionally, the user has defined a crop to out-pointrule for the outro layer, such that the end point of the compositioncontaining the outro layer will be cropped to the out-point of the outrolayer. FIG. 30B is a block diagram for a block diagram depicting oneembodiment of an interface where a user is defining time-sculpting rulesfor the “graphic” layer of a composition. Here, the user has defined anin-point trims to in-point rule and out-point trims to out-point rulefor the graphic layer, where the target layer for both rules is the mainlayer of the composition.

FIG. 30C depicts a block diagram depicting one embodiment of the effectof applying the temporal sculpting rules as defined in FIGS. 30A and 30Bto a composition including an intro, main, graphic and outro layer. Inparticular, composition 3060 a depicts an initial state of thecomposition 3060. Initially then, outro layer 3070 is composited atopgraphic layer 3050, intro layer 3090 and main layer 3080. Composition3060 b depicts a state of composition 3060 after the source of contentof the main layer 3080 and the outro layer 3070 changes, before theapplication of the rules defined for outro layer 3070 and graphic layer3050. Composition 3060 c depicts the state of the composition 3060 afterthe application of the rules for the outro layer 3070 and graphic layer3050 defined in FIGS. 30A and 30B.

A rules engine of a temporal sculpting module may evaluate the rulesassociated with composition 3060 as defined in the project for thecomposition when the source of content for main layer 3080 or outrolayer 3070 changes, and apply the shift in-point to out-point rules withoverlap and the crop to out-point rule specified for the outro layer3070, and the in-point trim to in-point rule and out-point trims toout-point rule specified for graphic layer 3050 in the project forcomposition 3060 (e.g., by changing the data associated with main layer3080, outro layer 3070 or the composition 3060 in the project). Noticehere that the application of the in-point trims to in-point andout-point trims to out-point rules specified for the graphic layer 3050causes the in-point of the graphic layer 3050 to be the same point intime as the in-point of the main layer 3080 and the out-point of graphiclayer 3050 to be the same point in time as the out-point of main layer3080 (e.g., the graphic layer 3050 will be displayed in the compositionat the same time as main layer 3080). Moreover, the in-point shifts toout-point rule plus overlap specified for the outro layer 3070 causesthe in-point of outro layer 3070 to be a point in time in thecomposition defined by main layer's (the target layer) out-point minusthe number of frames specified as the overlap (e.g., 15 frames). Inother words, the in-point of outro layer 3070 may be defined to be thenumber of overlap frames earlier than the out-point of main layer 3080.Additionally, the application of the crop to out-point rule associatedwith outro layer 3070 causes the end point of composition 3060 to be thesame as the out-point of outro layer 3070.

Generally then, embodiments of time sculpting rules as disclosed may beutilized to ensure that a desired temporal arrangement between layer ofa composition is maintained, irrespective of alterations to certainlayers. As a more general scenario suppose that a composition includesan intro, with a number of clips it is desired to display sequentially,followed by an outro. To ensure that this temporal arrangement ismaintained in such a scenario, with introducing dead space or otherartifacts, a digital editor may utilize embodiments of thetime-sculpting rules presented herein for their composition. FIGS.31A-31F are block diagrams depicting such a scenario.

Specifically, FIGS. 31A-31E are block diagrams depicting one embodimentof an interface where a user is defining time-sculpting rules for layersof the composition. In particular, in FIG. 31A a user has defined anin-point shifts to out-point with overlap rule for the “clip 1” layer,where the target layer is the “intro” layer of the composition and thenumber of frames of overlap is 15. Additionally, the user has selected apreserve start and preserve end rule from the trim menu of theinterface. These rules may be special cases of trim rule. A preserve thestart selection may cause the in-point or the controlled layer to alwaysbe placed at the start time of the control layer so that effectivelythere is no trimming of the layer's in-point. Similarly, for a selectionof preserve the end rule for the controlled layer indicates that theout-point of the controlled layer should be placed at the end time ofthe control layer so that effectively there is no trimming of thelayer's out-point. That is, the in-point or out-point is forced to theextent of the layer's start time or end time respectively. As in someembodiment is may make little sense to both preserve the start (or end)and target a sibling layer (e.g., another layer in the samecomposition), in one embodiment, if a user selects a preserve start fora control layer in the interface then the “In point trims to” and “Trimtarget” menu items of the interface may be greyed-out and becomedisabled.

In FIG. 31B a user has defined an in-point shifts to out-point withoverlap rule for the “clip 2” layer, where the target layer is the clip1 layer of the composition and the number of frames of overlap is 15.The user has also selected a preserve start and preserve end rule fromthe trim menu of the interface for the clip 2 layer. FIG. 31C shows thata user has defined an in-point shifts to out-point with overlap rule forthe “clip 3” layer, where the target layer is the clip 2 layer of thecomposition and the number of frames of overlap is 15. A preserve startand preserve end rule have also been selected from the trim menu of theinterface for the clip 3 layer. In FIG. 31D a user has defined anin-point shifts to out-point with overlap rule for the “clip 4” layer,where the target layer is the clip 3 layer of the composition and thenumber of frames of overlap is 15. Again the user has selected apreserve start and preserve end rule from the trim menu of the interfacefor the clip 4 layer. FIG. 31E shows that a user has defined an in-pointshifts to out-point with overlap rule for the “outro” layer, where thetarget layer is the clip 4 layer of the composition and the number offrames of overlap is 15. Additionally, a crop to out-point rulespecified for the outro layer.

FIG. 31F is a block diagram depicting one embodiment of the effect ofapplying the temporal sculpting rules as defined in FIGS. 31A-31E to acomposition including an intro, clip 1, clip 2, clip 2, clip 3, clip 4and an outro layer. In particular, composition 3160 a depicts an initialstate of the composition 3160. Initially then, outro layer 3170 iscomposited atop clip 4 layer 3172, clip 3 layer 3174, clip 2 layer 3176,clip 1 layer 3178 and intro layer 3180. Composition 3160 b depicts astate of composition 3160 after the source of content of one of the clip(1, 2, 3, or 4) layers 3172, 3174, 3176, 3178 changes, before theapplication of the rules defined for outro layer 3170 and clip (1, 2, 3,or 4) layers 3172, 3174, 3176, 3178. Composition 3160 c depicts thestate of the composition 3160 after the application of the rules foroutro layer 3170 and clip (1, 2, 3, or 4) layers 3172, 3174, 3176, 3178defined in FIGS. 31A-31E.

Here, a rules engine of a temporal sculpting module may evaluate therules associated with composition 3160 as defined in the project for thecomposition when the source of content for one of the clip (1, 2, 3, or4) layers 3172, 3174, 3176, 3178 changes and apply the shift in-point toout-point rules with overlap specified for clip (1, 2, 3, or 4) layers3172, 3174, 3176, 3178 and outro layer 3170 and the crop to out-pointrule specified for the outro layer 3170 in the project for composition3160 (e.g., by changing the data associated with clip (1, 2, 3, or 4)layers 3172, 3174, 3176, 3178, outro layer 3170 or the composition 3160in the project). Notice here that the application of the shift toin-point with overlap rules specified for clip (1, 2, 3, or 4) layers3172, 3174, 3176, 3178 and outro layer 3170 causes the in-point of clip1 layer 3172 to be a point in time in the composition defined by introlayer's (the target layer) out-point minus the number of framesspecified as the overlap (e.g., 15 frames); the in-point of clip 2 layer3174 to be a point in time in the composition defined by clip 1 layer's(the target layer) out-point minus the number of frames specified as theoverlap (e.g., 15 frames); the in-point of clip 3 layer 3176 to be apoint in time in the composition defined by clip 2 layer's (the targetlayer) out-point minus the number of frames specified as the overlap(e.g., 15 frames); the in-point of clip 4 layer 3178 to be a point intime in the composition defined by clip 3 layer's (the target layer)out-point minus the number of frames specified as the overlap (e.g., 15frames); and the in-point of outro layer 3170 to be a point in time inthe composition defined by clip 4 layer's (the target layer) out-pointminus the number of frames specified as the overlap (e.g., 15 frames).Additionally, the application of the crop to out-point rule associatedwith outro layer 3170 causes the end point of composition 3160 to be thesame as the out-point of outro layer 3170.

Now that embodiments of the time-sculpting rules implemented a temporalsculpting module of a digital compositing platform have been presented,it will be useful to discuss examples of the use of embodiments of sucha temporal sculpting module in the context of the use of a digitalcompositing platform. Attention is therefore directed to FIGS. 32A to32O which depict embodiments (or portions thereof) of an interface for adigital compositing platform that includes a temporal sculpting module.

Interface 3200 of a digital compositing platform may include acomposition timeline area 3210, a composition layer display area 3220, alayer source asset area 3230 and a composition viewer area 3240. Theinterface 3200 may also include temporal sculpting module interfaceareas 3250, 3260. In particular, these areas may include a timelineutility area 3250 and a layer effects control area 3260. FIG. 32Edepicts one embodiment of a layer source asset area 3230. A user mayinteract with layer source asset area 3230 to add content to a project.For example, assets may be added by selecting sources for the contentfor each layer using the layer source asset area 3230. Here, thiscontent may include footage assets 3232 and two animation slatecomposition assets 3234.

FIG. 32F depicts one embodiment of a composition layer area 3220 andcomposition timeline area 3210. Using these areas 3210, 3220 a user caninsert project content (e.g., as added in layer source asset area 3230)as layers in a composition, assign other names to those layers ifdesired (e.g., here, “outro”, “clip 1”, “clip 2”, “clip 3”, “clip 4”,“intro”) and position those named layers in a composition timeline whichis displayed in composition timeline area 3210. The composition timelinearea 3210 thus displays a timeline denoting a scale of time along withblocks representing each named layer and their relative position in thecomposition (e.g., as they will appear in a rendering of thecomposition). The project file for the project may thus now include thedefined composition, including references to each layer, names for eachlayer, the source of content for the layer, and the arrangement (e.g.,the temporal arrangement) of the layers of the composition.

FIG. 32G depicts an embodiment of layer effects control area 3260 andcomposition layer area 3220. Using the composition layer area 3220 (oranother area of the interface 3200) a user may select a layer of thecomposition (e.g., here “clip 4” has been selected). Then, using thelayer effects control area 3260, the user may define one or moretime-sculpting rules for that layer. The definition of rules for a layeris sometimes referred to as applying parameter controls to the layer asan effect modifier. In this manner, time-sculpting rules defining thetemporal interaction of one or more layers of a composition may beassociated with the composition or layers thereof such that a templatemay be defined for the composition. The layers or composition may thusbe made to conform to this template or set of rules when the source orcontent of a layer changes by applying those rules (referred to astimeline invalidation). Accordingly, the project for the composition mayinclude (e.g., store) the defined template or set of rules inassociation with the layers of the composition.

Timeline invalidation (e.g., a change in the content of a layer, as aresult of either a change of the original content or the substitution ofdifferent content) may occur in a variety of manners, as elaborated onabove. The composition (e.g., including the layers with the changedcontent) can then be altered according to the defined template (e.g.,the set of temporal sculpting rules for at least one layer) so that thelayers and the composition adhere to the set of temporal sculptingrules. In one embodiment, it may be desired by users to apply thetemplate (e.g., the set of rules) to instances of the composition thatinclude multiple sources of content for each layer. To facilitate thisapproach, embodiments of the digital compositing platform including thetemporal sculpting module as described may allow the definition ofmultiple sources for one or more of the layers of the composition andthe ability to process a composition according to each definition of thelayers.

For example, as depicted in FIG. 32H, in one embodiment, a user maycreate a spreadsheet or other data file defining an instance of thecomposition, where each instance specifies a source of content for oneor more layers of the composition. In one embodiment, a data file such aspreadsheet or the like may be used to define instances of a compositionby defining different sources of content for one or more layers of thecomposition for each instance. Thus, for example, as depicted in FIG.32H, a data file 3294 may include columns representing the layers ofclip 1, clip 2, clip 3 and clip 4 of the composition. The data file 3294thus defines three instances of the composition in rows 2, 3 and 4, witheach instance defining a different source for the layer of theassociated column. As depicted in the embodiment of the timeline utilityarea 3250 in FIG. 32I, a user can link the composition (e.g., theproject for the composition) being edited in interface 3200 to the datafile 3294 using timeline utility area 3250 by specifying the location ofthe data file 3294.

The user can then initiate a timeline invalidation using timelineutility area 3250 as depicted in FIG. 32J. Specifically, in oneembodiment, the user may select a button (e.g., the “Preview” button)displayed in timeline utility area 3250. The selection of this button,may cause the temporal sculpting module of the digital compositingplatform to retrieve a row of data from a data file linked to theproject (e.g., data file 3294) and read the sources for the layers asdefined in the row of the read data file. Moving to FIG. 32K, thesources for the layers as defined in the retrieved row of data can thenbe updated in the project file for the composition, changing the contentof these layers. The composition layer display area 3220 will displaythe timeline and layers of the composition based on the updated layers.It will be noted that, for layers of a composition not specified in thedata file, the content of those layers may not change and may be aspreviously defined in the project for the composition.

As the content of one or more layers of the composition have beenaltered, the temporal sculpting module may apply the time-sculptingrules of the composition as defined for one or more of the layers in theproject. Specifically, the layers of the composition may be rearranged(e.g., by shifting, trimming, stretching or cropping) the appropriatelayers of composition as discussed above according to the rulesspecified for the layers of the composition. This rearrangement mayadjust the data (e.g., the in-point, out-point, start time, end time,playback speed, etc.) associated with one or more layers in the project.Such rearrangement may thus be done automatically without further userinvolvement. In this manner, layers within a composition can be made toautomatically interact with one another in a composition with respectto, for example, start or end time, playback speed, in-point, out-pointor other points associated with the layers or compositions. Thecomposition layer display area 3220 will display the timeline and layersof the composition based on the rearranged layers as depicted in theembodiment of FIG. 32L.

This process may then be repeated, as depicted in FIGS. 32M to 32O. Theuser can initiate another timeline invalidation using timeline utilityarea 3250 as depicted in FIG. 32M. The selection of the Preview button,may cause the temporal sculpting module of the digital compositingplatform to retrieve the next row of data from the data file linked tothe project (e.g., data file 3294) and read the sources for the layersas defined in the row of the read data file. Moving to FIG. 32N, thesources for the layers as defined in the retrieved row of data can thenbe updated in the project file for the composition, changing the contentof these layers. The composition layer display area 3220 will displaythe timeline and layers of the composition based on the updated layers.As the content of one or more layers of the composition have beenaltered, the temporal sculpting module may apply the time-sculptingrules of the composition as defined for one or more of the layers in theproject. Specifically, the layers of the composition may be rearranged(e.g., by shifting, trimming, stretching or cropping) the appropriatelayers of composition as discussed above according to the rulesspecified for the layers of the composition. The composition layerdisplay area 3220 will display the timeline and layers of thecomposition based on the rearranged layers as depicted in the embodimentof FIG. 32O.

A user may also cause the digital compositing platform to render eachinstance of the composition as defined in a data file (e.g., data file3294) for the composition. In this case, a user may hit a “Render”button in the timeline utility area 3250. For each instance of thecomposition defined in the data file (e.g., data file 3294), the layersmay be rearranged according to the set of time sculpting rules and theresulting composition queued for rendering by the digital compositingplatform. Specifically, in one embodiment, the temporal sculpting modulemay iterate through each row of data in the data file linked to theproject (e.g., data file 3294) and read the sources for the layers asdefined in the row of the read data file. The sources for the layers asdefined in the retrieved row of data can then be updated in the projectfile for the composition, changing the content of these layers (whilelayers that have not changed or are not specified in the data file maybe as previously defined in the project for the composition). Thetemporal sculpting module may then queue that instance of thecomposition for rendering by the digital compositing platform and readthe next row of the data file (if another row is present). The digitalcompositing platform can then render each instance of the compositionand save the resulting output file (e.g., the resulting .mov, .mp4,.avi, etc). The resulting compositions will thus contain the contentspecified for each layer arranged according to the specifiedtime-sculpting rules.

Now that embodiments of digital compositing platforms that includetemporal sculpting modules that implement time-sculpting rules have beenexplained, attention is now directed to embodiments of methods forapplying those time-sculpting rules. In particular, FIGS. 33-40 depictembodiments of methods for the configuring or sequencing of layers byapplication of one or more time sequencing rules to configure orsequence the layers of a composition (timeline invalidation).

Looking first at FIG. 33, a flow diagram for one embodiment of methodfor configuring and sequencing layers within a digital video compositionis depicted. Embodiments of such methods may be employed by a digitalcompositing platform including a temporal sculpting module. Initially,then, a digital video composition may include a project including a setof named layers (which may themselves be a (nested) composition) and atemplate defining a set of time-sculpting rules, each rule associatedwith one or more of the set of layers. When one or more layers of acomposition changes or it is desired to change one or more layers,(e.g., when a timeline invalidation is initiated or occurs) all thedynamic layers of the composition may be harvested into a data structure(referred to without loss of generality as an array) (STEP 3310). Again,a dynamic layer is a layer of the composition which has a time-sculptingrule assigned to it, or associated with it. Thus, the harvesting mayinclude determining from the template of the project all the layersreferenced by the set of rules of the template and these layers placedinto the array. The array thus includes references to each dynamic layerof the composition and the associated data or properties of that layersuch as the start time, end time, in-point, out-point, playback speed,etc.

Using the array, then, each of the dynamic layers may be initialized andreset if needed (STEP 3320). Based on the set of rules of the template,the resetting process may (re)set the playback speed of all the dynamiclayers to 100% (e.g., normal playback speed) for all layers (e.g., if alayer's playback speed it not already at 100%). During this step it canalso be determined if any of the rules for a layer specify that the endpoint or start point of a layer is to be preserved. If so, the in-pointof the layer may be set to the start time (if the start of the layer isto be preserved) or the out-point of the layer set to the end point ofthe layer (if the start of the layer is to be preserved).

Once the dynamic layers are initialized and reset, the layers may bearranged according to the set of rules of the template (STEP 3330). Thearrangement of the layers may be done according to a nested depth of thecomposition of the project (referred to as the top-most or overallcomposition). In particular, in one embodiment, the maximum nested depthof the overall composition can be determined. For each level of depth,the layers can then be arranged according to the rules defined for thoselayers according to the template. This arrangement may include trimmingone or more of the layers (e.g., setting a layer's in-point or out-pointin the project based on a target layer's in-point or out-point);shifting one or more of the layers (e.g., setting a layer's start timeor end time in the project so the layer's in-point or out-point reachesa target layer's in-point or out-point); cropping one or more layers(which may be compositions) (e.g., by adjusting the duration of the acontaining composition where the beginning of a composition starts at alayer's in-point or the end of a composition ends at a layer'sout-point, or both); or stretching one or more layers (e.g., by changingthe duration of a layer in the project by adjusting the layer's playbackspeed until the layer's out-point reached the in-point or out-point of atarget layer, or the end of the layer's containing composition).

Each of the steps of FIG. 33 will now be explained in more detail. FIG.34 depicts one embodiment of a method for harvesting layers; FIG. 35depicts one embodiment of a method for initializing and resettinglayers; and FIG. 36 depicts one embodiment of a method arranging thelayers of the composition. Referring to FIG. 34, initially, then, adigital video composition may include a project including a set of namedlayers (which may themselves be a (nested) composition) and a templatedefining a set of time-sculpting rules, each rule associated with one ormore of the set of layers. When one or more layers of a compositionchanges or it is desired to change one or more layers, (e.g., when atimeline invalidation is initiated or occurs) all the dynamic layers ofthe composition may be harvested into a data structure (referred towithout loss of generality as an array).

Each layer of the project may be inspected (STEP 3410) to determine ifthat layer is a dynamic layer (STEP 3420). In one embodiment, for aparticular layer the rules of the template may be obtained and evaluatedto determine if that layer is referenced by any of the rules of thetemplate. If the layer is referenced it can be determined that the layeris marked as dynamic, while if no rule of the template references thatlayer it can be determined that the layer is not dynamic. If the layeris determined not to be a dynamic layer (NO branch of STEP 3420), it canbe determined if the last layer of the project has been evaluated (STEP3470). If it is the last layer, the harvesting of the layers may becomplete (NO branch of STEP 3470), otherwise (YES branch of STEP 3470)the next layer of the project may be evaluated to determine if it is adynamic layer (STEP 3420).

If, however, the layer is determined to be dynamic (e.g., is referencedby a rule) (YES branch of STEP 3420) the layer may be added to an arrayof dynamic layers (referred to in the following FIGURES as the “DynamicLayers Array”) (STEPS 3430, 3440). In one embodiment, the adding of thelayer as a dynamic layer to the Dynamic Layer Array may comprise pushingor putting an object for that layer into the array. This object may be areference to the layer in the project and thus may reference or includethe associated data or properties of that layer, including, for example,the start time, end time, in-point, out-point, playback speed,containing or sub compositions or layers (composition(s) which containthe layer or compositions or layers which the layer includes), etc.

Once layer is determined to be dynamic and added to the Dynamic LayerArray, it can further be determined if that dynamic layer has a footage(e.g., not a still image) source (STEP 3450). If the layer has a footagesource (YES branch of STEP 3450) the layer's footage source may beinvalidated and updated to the new source (STEP 3460). In oneembodiment, this determination may entail determining if the footagesource for that layer has changed or been altered from a source ofcontent currently associated with that layer in the project. Thus, forexample, as discussed above a data file may include footage sources forone or more layers of the composition of the project or the user mayhave otherwise specified footage sources for one or more layers of thecomposition. From the footage sources specified (e.g., the data file,row of the data file, user specification, etc.) it can be determined ifthere is a footage source for the layer different than the footagesource currently associated with the layer in the project. In oneembodiment, if the dynamic layer has a footage source (regardless ofwhether the source has changed or not), the footage source of the layermay be invalidated and updated (e.g., in the Dynamic Layer Array), suchthat any changes in the footage source may be accounted for (e.g.,duration, location, etc.). It will be understood, that, in someembodiments, as the Dynamic Layer Array may include objects thatreference the corresponding layer in the project, an update of the dataassociated with the layer in the Dynamic Layer Array may serve to (ormay actually be) an update of the data associated with the layer in theproject itself.

If the dynamic layer is determined not to have a footage source (NObranch of STEP 3450), it can be determined if the last layer of theproject has been evaluated (STEP 3470). If it is the last layer of theproject, the harvesting of the layers may be complete (NO branch of STEP3470), otherwise (YES branch of STEP 3470) the next layer may beevaluated to determine if it is a dynamic layer (STEP 3420).

Using the Dynamic Layer Array, then, each of the dynamic layers foundmay be initialized and reset if needed. FIG. 35 depicts one embodimentof a method for initializing and resetting layers Based on the set ofrules of the template, the resetting process may (re)set the playbackspeed of all the dynamic layers to 100% (e.g., normal playback speed)for all layers (e.g., if a layer's playback speed it not already at100%). It can also be determined if any of the rules for a layer specifythat the end point or start point of a layer is to be preserved. If so,the in-point of the layer may be set to the start time (if the start ofthe layer is to be preserved) or the out-point of the layer set to theend point of the layer (if the start of the layer is to be preserved).

More specifically, in one embodiment, each dynamic layer of the DynamicLayer Array (STEP 3510) may be iterated through to (re)set the playbackspeed of that dynamic layers to 100% (STEP 3512) (e.g., each layer'sassociated playback speed in the Dynamic Layer Array may be set to100%). Once the last layer of the Dynamic Layer Array has been processed(YES branch of STEP 3514), each layer of the Dynamic Layer Array may beiterated through again (STEP 3520). In this loop, for each layer, it canbe determined if the layer has a finite duration (STEP 3522). Forexample, videos or compositions may be of a finite duration, while stillimages may not have a finite duration. Other examples are possible. Ifthe dynamic layer has a finite duration (YES branch of STEP 3522) it canbe determined if a rule of the template for the project indicates thatthe head of that layer is to be preserved (e.g., a user has checked the“Preserve Start” box when setting the control parameter for that layerin the Trim menu of an interface) (STEP 3526). If a rule indicates thatthe head (or start) of the layer is to be preserved, the layer'sassociated in-point may be set to the layer's start time (e.g., thelayer's associated in-point in the Dynamic Layer Array may be set to thelayer's start time) (STEP 3530).

Similarly, it can be determined if a rule of the template for theproject indicates that the tail of that layer is to be preserved (e.g.,a user has checked the “Preserve End” box when setting the controlparameter for that layer in the Trim menu of an interface). If a ruleindicates that the tail (or end) of the layer is to be preserved (YESbranch of STEP 3532), the layer's associated out-point may be set to thelayer's end time (e.g., the layer's associated out-point in the DynamicLayer Array may be set to the layer's end time) (STEP 3538). If the lastlayer in the Dynamic Layer Array has been processed, the reset andinitialization of the layers may end (YES branch of STEP 3540).Otherwise, the next layer may be processed (NO branch of STEP 3540).

If a dynamic layer does not have a finite duration (NO branch of STEP3522) it can be determined if a rule of the template for the projectindicates that the head of that layer is to be preserved (e.g., a userhas checked the “Preserve Start” box when setting the control parameterfor that layer in the Trim menu of an interface) (STEP 3524). If a ruleindicates that the head (or start) of the layer is to be preserved, inthis case the layer's associated in-point may be set to the start timeof the composition that contains that layer (e.g., the layer'sassociated in-point in the Dynamic Layer Array may be set to thecontaining composition's start time) (STEP 3528).

It can also be determined if a rule of the template for the projectindicates that the tail of that layer is to be preserved (e.g., a userhas checked the “Preserve End” box when setting the control parameterfor that layer in the Trim menu of an interface). If a rule indicatesthat the tail (or end) of the layer is to be preserved (YES branch ofSTEP 3534), the layer's associated out-point may be set to the end timeor the composition that contains that layer (e.g., the layer'sassociated out-point in the Dynamic Layer Array may be set to thecontaining composition's end time) (STEP 3536). If the last layer in theDynamic Layer Array has been processed, the reset and initialization ofthe layers may end (YES branch of STEP 3540). Otherwise, the next layermay be processed (NO branch of STEP 3540).

Once the dynamic layers are initialized and reset, the layers may bearranged according to the set of rules of the template. The arrangementof the layers may be done according to a nested depth of the compositionof the project (referred to as the top-most or overall composition). Inparticular, in one embodiment, the maximum nested depth of the overallcomposition can be determined. For each level of depth, the layers canthen be arranged according to the rules defined for those layersaccording to the template. In one embodiment, this may include iteratingthrough the layers in both a forward direction and performingarrangement of the layers, followed by iterating through the layers atthat depth in the reverse direction and performing arrangement of thelayers. The arrangement of the layers in each direction may includetrimming, shifting; cropping or stretching one or more layers.

FIG. 36 depicts one embodiment of a method for arranging the layers ofthe composition. Initially, the maximum depth (N) of the composition maybe determined (STEP 3610). As discussed, nesting is the inclusion of onecomposition within another where the nested composition appears as alayer in the containing composition. A nested composition may, itself,contain nested compositions, etc. Therefore, a composition may bethought of as a tree structure, where the root node of the correspondingtree structure is the topmost composition (or the compositioncorresponding to the project), each layer of the composition that is notitself a composition may be thought of as a leaf node, and eachcomposition may be thought of as an internal node (inode or node of thetree that has any children) of the tree that will have one or more childnodes corresponding to the layers that the composition contains (wherethese child nodes may be leaf nodes or other inodes). The maximum depthof a composition may therefore be thought of as the maximum depth of anyinode of the tree structure corresponding to the composition. Thought ofanother way, the maximum depth of the composition may be the greatestlength of any path from the root node of the tree structurecorresponding to the composition to any inode of that tree structure.

Once the depth level (N) is determined, a loop may be executed for eachdepth level (e.g., 1 to N) (STEP 3612), where for each level the layers(e.g., all layers at each level) can be arranged in a forward directionand arranged in a reverse direction. Accordingly, as will be recalledfrom the above discussion, the layers may be ordered according to depthin the Dynamic Layer Array, with layers a higher depth (e.g., lessnested) appearing before those at a greater depth (more nested). Inother words, using the tree structure of a composition for analogyagain, the layers of a composition may be ordered in the Dynamic LayerArray such that layers at a higher level of the tree (e.g., shorterlength path to the root node) appear before layers at a lower level ofthe tree (e.g. longer length path to the root node). The layers are thusinitially iterated through for a depth level starting with the firstlayer in the Dynamic Layer Array and iterating through them sequentially(STEP 3614) (referred to as being processed in an “upstream” or forwarddirection). For each layer, that layer can then be trimmed (if needed)(STEP 3616) by setting the layer's in-point or out-point based on atarget layer's in-point or out-point; shifted (if needed) (STEP 3618) bysetting the layer's start time or end time so the layer's in-point orout-point reaches a target layer's in-point or out-point; cropped (ifneeded) (STEP 3620) by adjusting the duration of the a containingcomposition; or stretched (if needed) (STEP 3638) by changing theduration of a layer in the project by adjusting the layer's playbackspeed until the layer's out-point reached the in-point or out-point of atarget layer, or the end of the layer's containing composition. Eachlayer of the Dynamic Layer Array can thus be iterated throughsequentially until it is determined (STEP 3622) that there are no morelayers in the Dynamic Layer Array to be arranged in an upstream order(NO branch of STEP 3622).

When it is determined that all the layers of the Dynamic Layer Arrayhave been iterated through in an upstream or forward direction (e.g.,from higher level to lower levels) ((NO branch of STEP 3622) the layersof the Dynamic Layer Array can then be iterated through in a downstreamor reverse direction (e.g., from lower levels to higher levels). Again,remember the layers may be in the order according to depth in theDynamic Layer Array, with layers at a higher depth (e.g., less nested)appearing before those at a greater depth (more nested). Thus, in thisembodiment, the layers are now iterated through for the depth levelstarting with the last layer in the Dynamic Layer Array and iteratingthrough them in reverse sequential order (STEP 3624) (referred to asbeing processed in a “downstream” direction). Again, for each layer,that layer can then be trimmed (if needed) (STEP 3626); shifted (ifneeded) (STEP 3628); cropped (if needed) (STEP 3630); or stretched (ifneeded) (STEP 3632). Each layer of the Dynamic Layer Array can thus beiterated through in reverse sequential order until it is determined(STEP 3634) that there are no more layers in the Dynamic Layer Array tobe arranged in an downstream order (NO branch of STEP 3622). If, at thispoint it is determined that a number of iterations equal to the depthlevel (N) have been performed (YES branch of STEP 3636) the arrangementof the layers according to the time-sculpting rules may be complete. If,however, a number of iterations is not equal to the depth level (N), theDynamic Layer Array may again be iterated through in a forward andreverse direction (NO branch of STEP 3636).

FIGS. 37-40 depict embodiments of methods for the trimming, shifting,cropping or stretching of a layer that may be employed when arrangingthe layers of a composition. Referring first to FIG. 37, one embodimentof a method for trimming a layer is depicted. For the layer beingtrimmed, it can be determined if a rule of the template for the projectindicates that the head of that layer is to be preserved (e.g., a userhas checked the “Preserve Start” box when setting the control parameterfor that layer in the Trim menu of an interface) (STEP 3710). If a ruleindicates that the head (or start) of the layer is to be preserved (YESbranch of STEP 3710), in this case the layer's associated in-point maybe set to the same point in time as the layer's start time (e.g., thelayer's associated in-point in the Dynamic Layer Array may be set to thestart time of the layer) (STEP 3730). It will be noted that in certainembodiments, these steps or similar steps may occur in the reset andinitialization of layers of the composition and may not need to berepeated when trimming the layer.

If no rule indicates that the head (or start) of the layer is to bepreserved (NO branch of STEP 3710), it can be determined if a rule ofthe template specifies that the in-point of this layer is to be trimmedto in-point of a target (sibling) layer. If such a rule exists (YESbranch of STEP 3720) the layer's associated in-point may be set to thesame point in time as the sibling layer's in-point (e.g., the layer'sassociated in-point in the Dynamic Layer Array may be set to the siblinglayer's in-point) (STEP 3740). At this point, any overlap designated inthe rule may also be accounted for (e.g., if an overlap of a number offrames is specified in the rule, the layer's associated in-point may beset to the same point in time as the sibling layer's in-point with theamount of overlap designated by the rule). While not shown, similarsteps may be performed for the in-point of the layer and the out-pointof any sibling layer.

It can then be determined if a rule of the template for the projectindicates that the tail; of that layer is to be preserved (e.g., a userhas checked the “Preserve End” box when setting the control parameterfor that layer in the Trim menu of an interface) (STEP 3750). If a ruleindicates that the tail (or end) of the layer is to be preserved (YESbranch of STEP 3750), the layer's associated out-point may be set to thesame point in time as the layer's end time (e.g., the layer's associatedout-point in the Dynamic Layer Array may be set to the end time of thelayer) (STEP 3760). It will be noted here again, that in certainembodiments, these steps or similar steps may occur in the reset andinitialization of layers of the composition and may not need to berepeated when trimming the layer.

If no rule indicates that the tail (or end) of the layer is to bepreserved (NO branch of STEP 3750), it can be determined if a rule ofthe template specifies that the out-point of this layer is to be trimmedto an out-point of a target (sibling) layer. If such a rule exists (YESbranch of STEP 3780) the layer's associated out-point may be set to thesame point in time as the sibling layer's out-point (e.g., the layer'sassociated out-point in the Dynamic Layer Array may be set to thesibling layer's out-point) (STEP 3770). At this point, any overlapdesignated in the rule may also be accounted for (e.g., if an overlap ofa number of frames is specified in the rule, the layer's associatedout-point may be set to the same point in time as the sibling layer'sout-point with the amount of overlap designated by the rule). While notshown, similar steps may be performed for the out-point of the layer andthe in-point of any sibling layer.

Moving now to FIG. 38, one embodiment of a method for shifting a layeris depicted. Here, it can be determined if a rule specifies that thein-point of this layer is to be trimmed to an in-point of a target(sibling) layer. If such a rule exists (YES branch of STEP 3810) thelayer may be shifted with respect to the time line of the containingcomposition until the layer's in-point is the same time as the siblinglayer's in-point (STEP 3812). In one embodiment, the amount of timeneeded to add (or subtract) to (or from) the current in-point of thelayer to cause the in-point of the layer to be the same as the in-pointof the sibling layer may be determined and this amount of time added to(or subtracted from) both the in-point and the out-point of the layer(e.g., the amount of time added to (or subtracted from) the layer'sassociated in-point and out-point in the Dynamic Layer Array). At thispoint, any overlap designated in the rule may also be accounted for(e.g., if an overlap of a number of frames is specified in the rule, theassociated amount of time added (or subtracted) may account for theamount of overlap designated by the rule).

If no rule specifies that the in-point of this layer is to be trimmed toan in-point of a target (sibling) layer (NO branch of STEP 3810), it canbe determined if a rule specifies that the in-point of this layer is tobe trimmed to an out-point of a sibling layer. If such a rule exists(YES branch of STEP 3820) the layer may be shifted with respect to thetime line of the containing composition until the layer's in-point isthe same time as the sibling layer's out-point (STEP 3822). In oneembodiment, the amount of time needed to add (or subtract) to (or from)the current in-point of the layer to cause the in-point of the layer tobe the same as the out-point of the sibling layer may be determined andthis amount of time added to (or subtracted from) both the in-point andthe out-point of the layer (e.g., the amount of time added to (orsubtracted from) the layer's associated in-point and out-point in theDynamic Layer Array). At this point, any overlap designated in the rulemay also be accounted for (e.g., if an overlap of a number of frames isspecified in the rule, the amount of time added (or subtracted) mayaccount for the amount of overlap designated by the rule).

If no rule specifies that the in-point of this layer is to be trimmed toan out-point of a target (sibling) layer (NO branch of STEP 3820), itcan be determined if a rule specifies that the out-point of this layeris to be trimmed to an in-point of a sibling layer. If such a ruleexists (YES branch of STEP 3830) the layer may be shifted with respectto the time line of the containing composition until the layer'sout-point is the same time as the sibling layer's in-point (STEP 3832).In one embodiment, the amount of time needed to add (or subtract) to (orfrom) the current out-point of the layer to cause the out-point of thelayer to be the same as the in-point of the sibling layer may bedetermined and this amount of time added to (or subtracted from) boththe in-point and the out-point of the layer (e.g., the amount of timeadded to (or subtracted from) the layer's associated in-point andout-point in the Dynamic Layer Array). At this point, any overlapdesignated in the rule may also be accounted for (e.g., if an overlap ofa number of frames is specified in the rule, the amount of time added(or subtracted) may account for the amount of overlap designated by therule).

If no rule specifies that the out-point of this layer is to be trimmedto an in-point of a sibling layer (NO branch of STEP 3830), it can bedetermined if a rule specifies that the out-point of this layer is to betrimmed to an out-point of a sibling layer. If such a rule exists (YESbranch of STEP 3840) the layer may be shifted with respect to the timeline of the containing composition until the layer's out-point is thesame time as the sibling layer's out-point (STEP 3842). In oneembodiment, the amount of time needed to add (or subtract) to (or from)the current out-point of the layer to cause the out-point of the layerto be the same as the out-point of the sibling layer may be determinedand this amount of time added to (or subtracted from) both the in-pointand the out-point of the layer (e.g., the amount of time added to (orsubtracted from) the layer's associated in-point and out-point in theDynamic Layer Array). At this point, any overlap designated in the rulemay also be accounted for (e.g., if an overlap of a number of frames isspecified in the rule, the amount of time added (or subtracted) mayaccount for the amount of overlap designated by the rule).

FIG. 39 depicts one embodiment of a method for cropping a composition.Each of the layers in a composition can be iterated through (STEP 3910).For each of the layers, it can be determined if there is a ruledesignating that layer's in-point as the start of the containingcomposition (STEP 3912). If there is such a rule (YES branch of STEP3912), the start time of that layer and all the sibling layers may beshifted based on the layer's in-point (STEP 3914) (e.g., the layers'associated start time may be shifted in the Dynamic Layer Array). In oneembodiment, an amount of time equal to the layer's in-point may be addedto the in-point of the layers. The start of the containing compositionmay then be set to the in-point of that layer (STEP 3916) (e.g., thecomposition's associated start time may be set to the in-point of thatlayer in the Dynamic Layer Array). If the last layer of the compositionhas been processed at this point (YES branch of STEP 3918), the layerscan then be iterated through again (STEP 3920).

For each of the layers, it can be determined if there is a ruledesignating that layer's out-point as the end of the containingcomposition (STEP 3922). If there is such a rule (YES branch of STEP3922), the duration or end time of the containing composition may be setto the out-point of that layer (STEP 3924) (e.g., the composition'sassociated end time may be set to the same time as the out-point of thatlayer in the Dynamic Layer Array). If the last layer of the compositionhas been processed at this point (YES branch of STEP 3926) the croppingof the composition may be complete.

FIG. 40 depicts one embodiment of a method for stretching a layer. Forthe layer being stretched the playback rate of the layer may be reset tothe default stretch factor (e.g., 100% or normal playback rate) (STEP4010). It will be noted that in certain embodiments, these steps orsimilar steps may occur in the reset and initialization of layers of thecomposition and may not need to be repeated when stretching the layer.The current in-points and outpoints of the layers can then be determinedusing the in-point and out-point layer (e.g., which may be determinedfrom the Dynamic Layer Array entry associated with the layer) (STEP4012). It can then be determined if a rule of the template for theproject indicates that the layer is to be stretched to the in-point of atarget layer (STEP 4014). If a rule indicates that the layer is to bestretched to an in-point of a target layer a stretch factor may becalculated. This stretch factor may include, or may be used todetermine, a playback speed (e.g., a percentage) based on the layer'sduration and the target layer's in-point, such that the layer'sout-point is the same as the target layer's in-point (STEP 4020). Thelayer's playback speed can then be set to the determined playback speed(e.g., the layer's associated playback speed in the Dynamic Layer Arraymay be set to the determined playback speed) (STEP 4076).

If no rule indicates that the layer is to be stretched to the in-pointof a target layer (NO branch of STEP 4014), it can be determined if arule of the template for the project indicates that the layer is to bestretched to the out-point of a target layer (STEP 4016). If a ruleindicates that the layer is to be stretched to an out-point of a targetlayer a stretch factor may be calculated. This stretch factor mayinclude, or may be used to determine, a playback speed (e.g., apercentage) based on the layer's duration and the target layer'sout-point, such that the layer's out-point is the same as the targetlayer's out-point (STEP 4022). The layer's playback speed can then beset to the determined playback speed (e.g., the layer's associatedplayback speed in the Dynamic Layer Array may be set to the determinedplayback speed) (STEP 4076).

If no rule indicates that the layer is to be stretched to an out-pointof a target layer (NO branch of STEP 4016), it can be determined if arule of the template for the project indicates that the layer is to bestretched to the end time of the composition which contains the layer(STEP 4018). If a rule indicates that the layer is to be stretched to anend of the containing composition, a stretch factor may be calculated.This stretch factor may include, or may be used to determine, a playbackspeed (e.g., a percentage) based on the layer's duration and thecontaining composition's end time, such that the layer's out-point isthe same as the composition's end time (STEP 4024). The layer's playbackspeed can then be set to the determined playback speed (e.g., thelayer's associated playback speed in the Dynamic Layer Array may be setto the determined playback speed) (STEP 4076).

Although the invention has been described with respect to specificembodiments thereof, these embodiments are merely illustrative, and notrestrictive of the invention. The description herein of illustratedembodiments of the invention, including the description in the Abstractand Summary, is not intended to be exhaustive or to limit the inventionto the precise forms disclosed herein (and in particular, the inclusionof any particular embodiment, feature or function within the Abstract orSummary is not intended to limit the scope of the invention to suchembodiment, feature or function). Rather, the description is intended todescribe illustrative embodiments, features and functions in order toprovide a person of ordinary skill in the art context to understand theinvention without limiting the invention to any particularly describedembodiment, feature or function, including any such embodiment featureor function described in the Abstract or Summary. While specificembodiments of, and examples for, the invention are described herein forillustrative purposes only, various equivalent modifications arepossible within the spirit and scope of the invention, as those skilledin the relevant art will recognize and appreciate. As indicated, thesemodifications may be made to the invention in light of the foregoingdescription of illustrated embodiments of the invention and are to beincluded within the spirit and scope of the invention. Thus, while theinvention has been described herein with reference to particularembodiments thereof, a latitude of modification, various changes andsubstitutions are intended in the foregoing disclosures, and it will beappreciated that in some instances some features of embodiments of theinvention will be employed without a corresponding use of other featureswithout departing from the scope and spirit of the invention as setforth. Therefore, many modifications may be made to adapt a particularsituation or material to the essential scope and spirit of theinvention.

Reference throughout this specification to “one embodiment”, “anembodiment”, or “a specific embodiment” or similar terminology meansthat a particular feature, structure, or characteristic described inconnection with the embodiment is included in at least one embodimentand may not necessarily be present in all embodiments. Thus, respectiveappearances of the phrases “in one embodiment”, “in an embodiment”, or“in a specific embodiment” or similar terminology in various placesthroughout this specification are not necessarily referring to the sameembodiment. Furthermore, the particular features, structures, orcharacteristics of any particular embodiment may be combined in anysuitable manner with one or more other embodiments. It is to beunderstood that other variations and modifications of the embodimentsdescribed and illustrated herein are possible in light of the teachingsherein and are to be considered as part of the spirit and scope of theinvention.

In the description herein, numerous specific details are provided, suchas examples of components and/or methods, to provide a thoroughunderstanding of embodiments of the invention. One skilled in therelevant art will recognize, however, that an embodiment may be able tobe practiced without one or more of the specific details, or with otherapparatus, systems, assemblies, methods, components, materials, parts,and/or the like. In other instances, well-known structures, components,systems, materials, or operations are not specifically shown ordescribed in detail to avoid obscuring aspects of embodiments of theinvention. While the invention may be illustrated by using a particularembodiment, this is not and does not limit the invention to anyparticular embodiment and a person of ordinary skill in the art willrecognize that additional embodiments are readily understandable and area part of this invention.

Embodiments discussed herein can be implemented in a computercommunicatively coupled to a network (for example, the Internet),another computer, or in a standalone computer. As is known to thoseskilled in the art, a suitable computer can include a central processingunit (“CPU”), at least one read-only memory (“ROM”), at least one randomaccess memory (“RAM”), at least one hard drive (“HD”), and one or moreinput/output (“I/O”) device(s). The I/O devices can include a keyboard,monitor, printer, electronic pointing device (for example, mouse,trackball, stylus, touch pad, etc.), or the like. In embodiments of theinvention, the computer has access to at least one database over thenetwork.

ROM, RAM, and HD are computer memories for storing computer-executableinstructions executable by the CPU or capable of being compiled orinterpreted to be executable by the CPU. Suitable computer-executableinstructions may reside on a computer readable medium (e.g., ROM, RAM,and/or HD), hardware circuitry or the like, or any combination thereof.Within this disclosure, the term “computer readable medium” not limitedto ROM, RAM, and HD and can include any type of data storage medium thatcan be read by a processor. For example, a computer-readable medium mayrefer to a data cartridge, a data backup magnetic tape, a floppydiskette, a flash memory drive, an optical data storage drive, a CD-ROM,ROM, RAM, HD, or the like. The processes described herein may beimplemented in suitable computer-executable instructions that may resideon a computer readable medium (for example, a disk, CD-ROM, a memory,etc.). Alternatively, the computer-executable instructions may be storedas software code components on a direct access storage device array,magnetic tape, floppy diskette, optical storage device, or otherappropriate computer-readable medium or storage device.

Any suitable programming language can be used to implement the routines,methods or programs of embodiments of the invention described herein,including C, C++, Java, JavaScript, HTML, or any other programming orscripting code, etc. Other software/hardware/network architectures maybe used. For example, the functions of the disclosed embodiments may beimplemented on one computer or shared/distributed among two or morecomputers in or across a network. Communications between computersimplementing embodiments can be accomplished using any electronic,optical, radio frequency signals, or other suitable methods and tools ofcommunication in compliance with known network protocols.

Different programming techniques can be employed such as procedural orobject oriented. Any particular routine can execute on a single computerprocessing device or multiple computer processing devices, a singlecomputer processor or multiple computer processors. Data may be storedin a single storage medium or distributed through multiple storagemediums, and may reside in a single database or multiple databases (orother data storage techniques). Although the steps, operations, orcomputations may be presented in a specific order, this order may bechanged in different embodiments. In some embodiments, to the extentmultiple steps are shown as sequential in this specification, somecombination of such steps in alternative embodiments may be performed atthe same time. The sequence of operations described herein can beinterrupted, suspended, or otherwise controlled by another process, suchas an operating system, kernel, etc. The routines can operate in anoperating system environment or as stand-alone routines. Functions,routines, methods, steps and operations described herein can beperformed in hardware, software, firmware or any combination thereof.

Embodiments described herein can be implemented in the form of controllogic in software or hardware or a combination of both. The controllogic may be stored in an information storage medium, such as acomputer-readable medium, as a plurality of instructions adapted todirect an information processing device to perform a set of stepsdisclosed in the various embodiments. Based on the disclosure andteachings provided herein, a person of ordinary skill in the art willappreciate other ways and/or methods to implement the invention.

It is also within the spirit and scope of the invention to implement insoftware programming or code an of the steps, operations, methods,routines or portions thereof described herein, where such softwareprogramming or code can be stored in a computer-readable medium and canbe operated on by a processor to permit a computer to perform any of thesteps, operations, methods, routines or portions thereof describedherein. The invention may be implemented by using software programmingor code in one or more general purpose digital computers, by usingapplication specific integrated circuits, programmable logic devices,field programmable gate arrays, optical, chemical, biological, quantumor nanoengineered systems, components and mechanisms may be used. Ingeneral, the functions of the invention can be achieved by any means asis known in the art. For example, distributed, or networked systems,components and circuits can be used. In another example, communicationor transfer (or otherwise moving from one place to another) of data maybe wired, wireless, or by any other means.

A “computer-readable medium” may be any medium that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, system ordevice. The computer readable medium can be, by way of example only butnot by limitation, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, system, device,propagation medium, or computer memory. Such computer-readable mediumshall generally be machine readable and include software programming orcode that can be human readable (e.g., source code) or machine readable(e.g., object code). Examples of non-transitory computer-readable mediacan include random access memories, read-only memories, hard drives,data cartridges, magnetic tapes, floppy diskettes, flash memory drives,optical data storage devices, compact-disc read-only memories, and otherappropriate computer memories and data storage devices. In anillustrative embodiment, some or all of the software components mayreside on a single server computer or on any combination of separateserver computers. As one skilled in the art can appreciate, a computerprogram product implementing an embodiment disclosed herein may compriseone or more non-transitory computer readable media storing computerinstructions translatable by one or more processors in a computingenvironment.

A “processor” includes any, hardware system, mechanism or component thatprocesses data, signals or other information. A processor can include asystem with a general-purpose central processing unit, multipleprocessing units, dedicated circuitry for achieving functionality, orother systems. Processing need not be limited to a geographic location,or have temporal limitations. For example, a processor can perform itsfunctions in “real-time,” “offline,” in a “batch mode,” etc. Portions ofprocessing can be performed at different times and at differentlocations, by different (or the same) processing systems.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application.Additionally, any signal arrows in the drawings/Figures should beconsidered only as exemplary, and not limiting, unless otherwisespecifically noted.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having,” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,product, article, or apparatus that comprises a list of elements is notnecessarily limited only those elements but may include other elementsnot expressly listed or inherent to such process, product, article, orapparatus.

Furthermore, the term “or” as used herein is generally intended to mean“and/or” unless otherwise indicated. For example, a condition A or B issatisfied by any one of the following: A is true (or present) and B isfalse (or not present), A is false (or not present) and B is true (orpresent), and both A and B are true (or present). As used herein, a termpreceded by “a” or “an” (and “the” when antecedent basis is “a” or “an”)includes both singular and plural of such term (i.e., that the reference“a” or “an” clearly indicates only the singular or only the plural).Also, the meaning of “in” includes “in” and “on” unless the contextclearly dictates otherwise.

What is claimed is:
 1. A digital video compositing system for automatictemporal adjustment of a digital composition, comprising: a data store,including a project defining a composition arranged according to a firsttemporal arrangement including a timeline and having a set of layers,wherein the set of layers of the composition are arranged according tothe first temporal arrangement and each layer is associated withcorresponding digital content; a non-transitory computer readable mediumcomprising instructions for temporal sculpting, the instructions for:allowing a user to define a set of temporal sculpting rules including afirst temporal sculpting rule associated with a first layer of thecomposition, where the first temporal rule is a target rule establishinga link between the first layer and a target associated with thecomposition; and storing the set of temporal rules in the data store inassociation with the composition, including storing the first temporalsculpting rule in association with the first layer; and a rules enginefor: determining that digital content corresponding to the compositionhas changed; and automatically adjusting the composition from the firsttemporal arrangement to a second temporal arrangement to conform withthe first temporal sculpting rule without user involvement, whereinadjusting the temporal arrangement comprises modifying the project totemporally arrange the first layer within the composition based on thelink between the first layer and target by preserving a set ofproperties of the first layer during a first time period correspondingto the target based on the link between the first layer and the targetassociated with the composition.
 2. The digital video compositing systemof claim 1, wherein modifying the project to temporally arrange thefirst layer within the composition based on the link between the firstlayer and target comprises modifying the set of properties of the firstlayer during a second time period that does not overlap with the firsttime period corresponding to the target based on the link between thefirst layer and the target associated with the composition.
 3. Thedigital video compositing system of claim 1, wherein the target is oneor more of a time stamp, a second layer, a user defined marker or akeyframe.
 4. The digital video compositing system of claim 3, whereinthe time stamp is defined with respect to the composition or the secondlayer.
 5. The digital video compositing system of claim 3, wherein thekeyframe is defined with respect to the second layer.
 6. The digitalvideo compositing system of claim 1, wherein the temporal sculptinginstructions are integrated into the digital compositing platformsystem.
 7. The digital video compositing system of claim 1, whereindetermining that digital content corresponding to the composition haschanged comprises determining that a time duration of a second layer ofthe composition has changed.
 8. A method for automatic temporaladjustment of a digital composition, comprising: storing a set oftemporal sculpting rules in association with a composition arrangedaccording to a first temporal arrangement including a timeline andhaving a set of layers, wherein a project defines the composition, theset of layers of the composition are arranged according to the firsttemporal arrangement, and each layer is associated with correspondingdigital content, and wherein the set of temporal sculpting rulesincludes a first temporal sculpting rule associated with a first layerof the composition, where the first temporal rule is a target ruleestablishing a link between the first layer and a target associated withthe composition; determining that digital content corresponding to thecomposition has changed; and automatically adjusting the compositionfrom the first temporal arrangement to a second temporal arrangement toconform with the first temporal sculpting rule without user involvement,wherein adjusting the temporal arrangement comprises modifying theproject to temporally arrange the first layer within the compositionbased on the link between the first layer and target by preserving a setof properties of the first layer during a first time periodcorresponding to the target based on the link between the first layerand the target associated with the composition.
 9. The method of claim8, wherein modifying the project to temporally arrange the first layerwithin the composition based on the link between the first layer andtarget comprises modifying the set of properties of the first layerduring a second time period that does not overlap with the first timeperiod corresponding to the target based on the link between the firstlayer and the target associated with the composition.
 10. The method ofclaim 8, wherein the target is one or more of a time stamp, a secondlayer, a user defined marker or a keyframe.
 11. The method of claim 10,wherein the time stamp is defined with respect to the composition or thesecond layer.
 12. The method of claim 10, wherein the keyframe isdefined with respect to the second layer.
 13. The method of claim 8,wherein the temporal sculpting instructions are integrated into thedigital compositing platform system.
 14. The method of claim 8, whereindetermining that digital content corresponding to the composition haschanged comprises determining that a time duration of a second layer ofthe composition has changed.
 15. A non-transitory computer readablemedium comprising instructions for automatic temporal adjustment of adigital composition, the instructions executable for: storing a set oftemporal sculpting rules in association with a composition arrangedaccording to a first temporal arrangement including a timeline andhaving a set of layers, wherein a project defines the composition, theset of layers of the composition are arranged according to the firsttemporal arrangement, and each layer is associated with correspondingdigital content, and wherein the set of temporal sculpting rulesincludes a first temporal sculpting rule associated with a first layerof the composition, where the first temporal rule is a target ruleestablishing a link between the first layer and a target associated withthe composition; determining that digital content corresponding to thecomposition has changed; and automatically adjusting the compositionfrom the first temporal arrangement to a second temporal arrangement toconform with the first temporal sculpting rule without user involvement,wherein adjusting the temporal arrangement comprises modifying theproject to temporally arrange the first layer within the compositionbased on the link between the first layer and target by preserving a setof properties of the first layer during a first time periodcorresponding to the target based on the link between the first layerand the target associated with the composition.
 16. The non-transitorycomputer readable medium of claim 15, wherein modifying the project totemporally arrange the first layer within the composition based on thelink between the first layer and target comprises modifying the set ofproperties of the first layer during a second time period that does notoverlap with the first time period corresponding to the target based onthe link between the first layer and the target associated with thecomposition.
 17. The non-transitory computer readable medium of claim15, wherein the target is one or more of a time stamp, a second layer, auser defined marker or a keyframe.
 18. The non-transitory computerreadable medium of claim 17, wherein the time stamp is defined withrespect to the composition or the second layer.
 19. The non-transitorycomputer readable medium of claim 17, wherein the keyframe is definedwith respect to the second layer.
 20. The non-transitory computerreadable medium of claim 15, wherein the temporal sculpting instructionsare integrated into the digital compositing platform system.
 21. Thenon-transitory computer readable medium of claim 15, wherein determiningthat digital content corresponding to the composition has changedcomprises determining that a time duration of a second layer of thecomposition has changed.